Javascript 如何使JQuery事件在两个类中工作? $(函数(){ $('.logger').bind('click',function(){ 警报(“我们将记录用户共享的内容”); return true;//继续,假装什么也没发生。 }); $('.share').bind('click',function(){ 窗口。打开(“废话”); 返回false; }); });

Javascript 如何使JQuery事件在两个类中工作? $(函数(){ $('.logger').bind('click',function(){ 警报(“我们将记录用户共享的内容”); return true;//继续,假装什么也没发生。 }); $('.share').bind('click',function(){ 窗口。打开(“废话”); 返回false; }); });,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我希望能够触发记录器和共享功能。但现在,只有共享功能被触发。如果我对共享函数进行注释,那么记录器函数工作正常 我还尝试更改“类”,使记录器在共享之前运行。当返回false时

我希望能够触发记录器和共享功能。但现在,只有共享功能被触发。如果我对共享函数进行注释,那么记录器函数工作正常


我还尝试更改“类”,使记录器在共享之前运行。

返回false时event.preventDefault()

这很好地解释了这个概念:

首先,返回false实际上是 在工作时做三件非常不同的事情 你称之为:

  • event.preventDefault()
  • 事件停止播放()
  • 停止回调执行并返回 打电话的时候马上 “等等 分钟,“你哭了我只需要 停止默认行为!我不知道 我想还需要这两件东西

    这三个动作中唯一的一个 需要取消默认行为 是preventDefault()。除非你是说 要真正停止事件传播 (冒泡),使用return-false-will 大大增加了材料的脆性 你的代码


    您在哪个浏览器中进行了测试?它在Chrome和Firefox中对我起作用:你发布的代码对我起作用:也为我工作(Chrome)。肯定是别的地方出错了。我不明白为什么这个答案被否决了。有人愿意解释吗?
    返回false
    阻止传播,但不阻止对同一元素触发其他回调。出于使用
    stopimediatepropagation
    的目的,它被隐藏在笨重的JQuery文档中。我正要发布一个与Raul的第一段内容大致相同的答案,我想先在jQueryDoco中查找,但这并不明显。它说返回false确实会
    preventDefault()
    stopPropagation()
    ,而
    stopPropagation()
    上的页面明确地说,它不会停止同一元素上的其他处理程序运行,甚至没有提到
    stopImmediatePropagation
    的存在。
    <script>
    $(function(){
        $('.logger').bind('click',function(){
            alert('we will log that the user shared something');
            return true; //keep going, pretend nothing happened.
        });
    
        $('.share').bind('click',function(){
            window.open('blah');
            return false; 
        });
    });
    </script>
    <a href="#" class="share logger">Share this</a>