0

我有这行 jQuery

 jQuery(document).ready(function($) {
    $(".thumbs a.dlink").live("click", function() { 
    alert("yo");
});

在我最初包含的链接上,代码中有一个 return false 阻止了页面按预期工作。警报只是我在测试,但事实证明警报会延迟任何当前页面操作,直到它关闭。

非常感谢大家!

编辑:很抱歉这可能造成的任何混乱。故事的寓意——当心返回虚假的!

4

3 回答 3

1

我认为问题出return false在您的代码中。

jQuery(document).ready(function($) {
    $(".thumbs a.dlink").live("click", function() { 
        var id = $(this).attr('id'); //$("#galid").val();
        id = id.substr(1);
        alert("yo"); 
        $.post( MyAjax.ajaxurl, {
            action : 'download_counter',
            postCommentNonce : MyAjax.postCommentNonce,
            id : id
        },function(response) {} );
    });
});
于 2013-06-05T02:50:52.203 回答
0

window.alert函数暂停页面上的 JavaScript 并且是模态的,因此在用户关闭对话框之前不会发生任何事情。我对替代方案的建议是在 html 中创建您自己的警报对话框,或使用其中的许多库/插件之一,例如jQuery UI 的对话框小部件,并将其用于您的消息以代替警报。由于您只是添加了一个 dom 元素,因此不会暂停您的脚本,并且任何异步函数都将正常运行。

于 2013-06-05T02:35:23.147 回答
0

尝试更多类似的东西:

<div id='dialog-yo' title='Download In Progress'>Yo</div>
<div class='thumbs'><a class="dlink" dlTitle='my cool image'>try this now</a></div>
<script>
  $(function() {

    $( '#dialog-yo' ).dialog({
      modal: false,
      autoOpen: false,
      closeOnEscape: true,
      draggable: true,
      hide: 'slide',
      show: 'fade',
      resizable: true,
      height: 200,
      width: 200,
      zIndex: 200,
      buttons: {
        'Yeah, Okay': function() { $( '#dialog-yo' ).dialog('close'); }
      }
    });

    $(".thumbs a.dlink").live("click", function() { 
      $( '#dialog-yo' ).dialog('open').html(this.getAttribute('dlTitle'));
    });        

  });
</script>

查看您的网站后,我不确定您的通知的目的,但希望这能让您朝着灵活的方向前进,您可以继续前进。

于 2013-06-05T03:19:33.493 回答