gpt4 book ai didi

排除元素和子元素的 jQuery 选择器

转载 作者:行者123 更新时间:2023-12-01 00:17:00 24 4
gpt4 key购买 nike

我有一个用于过滤的 div,我希望在单击 div 之外的任何内容时关闭它。我试图构建的选择器基本上选择除特定元素之外的所有元素并排除其子元素。这是我尝试过的方法,但未能成功

$('*:not(:has(.exclude *))').live('click', function() {HideFilter();});

页面结构简化为:

<div></div>
<div>
<div></div>
<div>
<div class="exclude"><inputs></div>
</div>
<div></div>
</div>

所以我想要所有的 div,但 .exclude 中的一个和所有内容都具有该事件。我从事这个工作有一段时间了,我需要一些帮助。

最佳答案

你试过吗

$('*:not(.exclude, .exclude *)').live( ... )

?[编辑[啊我明白了 - 问题是即使你排除这些东西,事件仍然会冒泡。

尝试这样的事情:

$('*').live('click', function(e) {
if (!$(e.target).is('.exclude, .exclude *'))
// do interesting stuff
}
return false;
});

这应该会停止在排除的事物上的事件传播,而无需实际执行任何操作。

示例页面:http://gutfullofbeer.net/balloon.html

编辑更新,3年后:.live()方法此时已被长期弃用。最后一个示例在新代码中应如下所示:

$('body').on('click', '*', function(e) {
if (!$(e.target).closest('.exclude').length) {
// do interesting stuff
}
return false;
});

关于排除元素和子元素的 jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2321836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com