jQuery:单击嵌套元素

我有以下标记

  1. @qItem.CategoryText

和以下脚本

 $(".ListItem").click(function(){ doActionA(); }); $(".deleteIcon").click(function(){ doActionB(); }); 

当我点击图片时,它也会触发ListItem的点击。 我理解这是因为图像在ListItem中。 但我希望单击图像时不触发ListItem的点击。 有没有办法做到这一点?

 $(".deleteIcon").click(function(e){ doActionB(); e.stopPropagation(); }); 

您需要使用event.stopPropagation()来阻止事件冒泡DOM树。

 $(".deleteIcon").click(function(event){ event.stopPropagation() doActionA(); }); 

使用delete图标绑定的事件是使用ListItem触发父事件绑定,因此当子元素是事件源时,您需要停止父事件的传播。

 $(document).on("click", ".deleteIcon", function() { doActionB(); }); 

这个方法是我发现使用嵌套元素的唯一方法,特别是那些由像Pivottable这样的库生成的方法( https://github.com/nicolaskruchten/pivottable

 $(".deleteIcon").click(function(){ doActionA(); return false; }); 

按照JQuery文档中的指示使用.one()。