如何从jquery中排除元素。单击()

如何从jquery中排除元素。单击(),jquery,Jquery,我得到了类似的东西,我想在单击时排除#bar元素参与切换函数 因此,如果在蓝色部分可见时单击,则不会发生任何事情,我已尝试 $('#foo').not('#bar').click(function () 了解事件冒泡非常有用。当您有一个绑定在父元素上的事件(在您的情况下是$(“#foo”)在单击时执行某些操作,有时人们需要在子元素上执行其他操作,在您的情况下是$(“#bar”) 当您单击DOM继承者权限中较深的元素时,该元素上发生的事件将遍历所有父节点 您需要使用event.stopPropa

我得到了类似的东西,我想在单击时排除#bar元素参与切换函数

因此,如果在蓝色部分可见时单击,则不会发生任何事情,我已尝试

$('#foo').not('#bar').click(function ()

了解事件冒泡非常有用。当您有一个绑定在父元素上的事件(在您的情况下是
$(“#foo”)
在单击时执行某些操作,有时人们需要在子元素上执行其他操作,在您的情况下是
$(“#bar”)

当您单击DOM继承者权限中较深的元素时,该元素上发生的事件将遍历所有父节点

您需要使用
event.stopPropagation()
来停止向父节点冒泡的事件:

$(文档).ready(函数(){
$('#foo')。单击(函数(){
$('#bar')。切换('快速')
});
$(“#条”)。单击(函数(e){
e、 stopPropagation();//停止事件,使其冒泡到父元素。
});
})
#foo{
宽度:100px;
高度:100px;
背景颜色:黄色;
}
#酒吧{
宽度:50px;
高度:50px;
背景颜色:蓝色;
}

一种方法:

Codepen

您需要使用
e.stopPropagation()


如果目标元素为条形,则可以选中“单击目标元素”和“不开火”切换。请参阅下面的代码片段

    $('#foo').click(function (e) {
        if(!$(e.target).hasClass("bar")){
            $('#foo').find('#bar').toggle('fast');
        }
    });
您还可以看到这个

$(“#foo:not(#bar)”)。单击()可以解决问题吗?我在stackoverflow网站上查过了,它运行正常。所以我加上它作为一个答案。尝试没有运气
$(document).ready(function() {
  $('#foo').click(function() {
    $('#foo').find('#bar').toggle('fast')
  })
  $('#bar').click(function(e) {
    e.stopPropagation();
  });
})
    $('#foo').click(function (e) {
        if(!$(e.target).hasClass("bar")){
            $('#foo').find('#bar').toggle('fast');
        }
    });