父div上的jQuery但不是孩子

时间:2013-07-09 07:10:07

标签: javascript jquery

说我有这个

<div class="parent">
    <div class="child1"></div>
    <div class="child2"></div>
</div>

如果点击.parent,我怎么能让jQuery做一些事情,只要没有点击.child2?我尝试使用event.stopPropagation()但它没有用。 这就是我所拥有的:

$('body').on({
    click: function(event)
    {
        event.stopPropagation();
    }
},'.child2');

$('body').on({
    click: function()
    {
        //blah blah
    }
},'.parent');

3 个答案:

答案 0 :(得分:4)

您可以使用事件对象的stopPropagation方法:

$('.parent').on('click', function(){
  // ...
}).find('.child2').on('click', function(event){
   event.stopPropagation();
});

http://jsfiddle.net/c8bqM/

答案 1 :(得分:1)

它实际上与停止传播一起使用。看到下面的代码,它对我有用。

(文档)$。就绪(函数(){

$(".parent").click(function(){
    alert("this is test");
});
$(".parent div").click(function(e) {
    e.stopPropagation();

});

});

http://jsfiddle.net/rameshwor/p4MFb/1/

答案 2 :(得分:0)

你可以试试这个

$(document).ready(function() {
    $('.parent').on('click', function() {
        alert('parent');
    }); 

    $('.child2').on('click', function() {
        $('.parent').off('click');
    });
});

小提琴:http://jsfiddle.net/g3n3p/