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