使用jquery进行fire ul标记点击事件

时间:2014-06-21 14:30:34

标签: javascript jquery html

如何影响点击事件只有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
});

我们怎么做?

2 个答案:

答案 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();
    });