如何让2个类的JQuery事件工作?

时间:2011-07-08 06:37:16

标签: javascript jquery html css

<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>

我希望能够触发记录器和共享功能。但是现在,只触发了共享功能。如果我评论共享功能,则记录器功能正常。

我还尝试更改“类”,以便记录器在分享之前。

1 个答案:

答案 0 :(得分:1)

当您在停止事件传播的事件处理程序中return false;时,这就是未触发其他处理程序的原因。如果您只想停止默认操作,请使用event.preventDefault()

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

  

首先,实际上返回false   做三件非常独立的事情   你叫它:

     
      
  1. event.preventDefault();
  2.   
  3. event.stopPropagation();
  4.   
  5. 停止回调执行并返回   在被叫时立即
  6.         

    “等一下   一分钟,“你哭! 我只需要   停止默认行为!我不   需要这两个项目 ......我想。

         

    这三项行动中唯一的一项   需要取消默认行为   是 preventDefault()。除非你的意思   实际上停止事件传播   (冒泡),使用return false会   大大增加了脆性   你的代码