如何影响点击事件只有ul标签不是所有li用jQuery?
<!-- HTML -->
<ul class="wrap">
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
我试过像这样的jquery。但它不起作用。
//Javascript
jQuery("ul.wrap").not(jQuery("ul > li")).click(function(){
//fire only ul
});
我们怎么做?
答案 0 :(得分:4)
您只需使用以下代码即可:
jQuery('.wrap').click(function (event) {
if ( !$(event.target).is( "li" ) ) {
console.log('ul clicked!');
}
});
您可以在此处看到一个背景颜色示例,其中显示了ul和li:http://jsfiddle.net/S67Uu/2/
答案 1 :(得分:3)
事件'将DOM冒泡到他们的父元素。您需要做的是将活动附加到ul
,以及使用li
的子stopPropagation()
元素上的其他活动:
jQuery("ul.wrap")
.on('click', function(){
// do something...
})
.on('click', 'li', function(e) {
e.stopPropagation();
});