Javascript 如何在jQuery中防止单击触发多个单击处理程序调用
我使用jQuery来创建一个列表和一个div元素click。HTML代码是-Javascript 如何在jQuery中防止单击触发多个单击处理程序调用,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我使用jQuery来创建一个列表和一个div元素click。HTML代码是- <ul class="list-group"> <li class="list-group-item"> <div> <div> Anything <img id="image_click" src="http://www.neatimage.com/im/lin_logo.gif"&g
<ul class="list-group">
<li class="list-group-item">
<div>
<div>
Anything <img id="image_click" src="http://www.neatimage.com/im/lin_logo.gif">
</div>
<div>
More thing
</div>
</div>
</li>
<li class="list-group-item">Documents</li>
<li class="list-group-item">Music</li>
<li class="list-group-item">Videos</li>
</ul>
当我点击一个li项目时,只有列表的发出警报。
但如果我点击了image,那么image的和list的会被提醒
我想要的是,如果有人点击li元素,列表的应该被提醒,但是如果他点击图像,只有图像的应该被提醒,列表的不应该被提醒。这是因为
这是因为,所以你打电话来阻止它
使用;:停止冒泡事件
$("#image_click").click(function(e)
{
e.stopPropagation();
alert("for image");
});
使用;:停止冒泡事件
$("#image_click").click(function(e)
{
e.stopPropagation();
alert("for image");
});
或者您可以尝试以下代码:
$(".list-group-item").click(function (e) {
if(this==e.target)
alert("for list");
});
我想这可能会对您有所帮助。或者您可以尝试以下代码:
$(".list-group-item").click(function (e) {
if(this==e.target)
alert("for list");
});
我认为这可能会对您有所帮助。如果您不想从任何只写
的操作中得到任何操作,请返回false
。这将防止多次触发您的功能代码
$(".list-group-item").click(function(){
return false;
});
$("#image_click").click(function(){
alert("for image");
});
如果您不想从任何只写
的操作中得到任何操作,则返回false
。这将防止多次触发您的功能代码
$(".list-group-item").click(function(){
return false;
});
$("#image_click").click(function(){
alert("for image");
});
停止传播不是一个好主意吗?难道没有更好的方法来处理这件事吗@crazymatt您可以随时检查单击是否发生在特定元素中,然后选择不执行anything@crazymatt比如——或者更广义地说,停止传播不是一个好主意吗?难道没有更好的方法来处理这件事吗@crazymatt您可以随时检查单击是否发生在特定元素中,然后选择不执行anything@crazymatt比如-,或者更广义的是Fiddle-Link,这里是Fiddle-Link,读这篇文章,读这篇文章