Javascript 使用jquery触发ul标签点击事件而不是li
如何使用jQuery影响仅单击事件ul标记而非所有liJavascript 使用jquery触发ul标签点击事件而不是li,javascript,jquery,html,Javascript,Jquery,Html,如何使用jQuery影响仅单击事件ul标记而非所有li <!-- HTML --> <ul class="wrap"> <li>test1</li> <li>test2</li> <li>test3</li> </ul> 我们如何做到这一点?事件将DOM“冒泡”到它们的父元素。您需要做的是将事件附加到ul,并在子li元素上附加另一个事件,该子元素使用stopPro
<!-- HTML -->
<ul class="wrap">
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
我们如何做到这一点?事件将DOM“冒泡”到它们的父元素。您需要做的是将事件附加到
ul
,并在子li
元素上附加另一个事件,该子元素使用stopPropagation()
:
您只需使用以下代码即可:
jQuery('.wrap').click(function (event) {
if ( !$(event.target).is( "li" ) ) {
console.log('ul clicked!');
}
});
你可以在这里看到一个背景颜色显示ul和li的示例:但ul毕竟会有li。点击ul检查这把小提琴是什么意思。ul有li,所以你认为点击li,就好像点击ul一样。我的意思是jquery点击事件将影响除所有li之外的所有li。谢谢Rory McCrossan。这是完美的工作。我试着在模态中使用这个。Thanks@user3763026没问题,很乐意帮忙
jQuery("ul.wrap")
.on('click', function(){
// do something...
})
.on('click', 'li', function(e) {
e.stopPropagation();
});
jQuery('.wrap').click(function (event) {
if ( !$(event.target).is( "li" ) ) {
console.log('ul clicked!');
}
});