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>