Javascript Jquery not()select在我的情况下不起作用
我想在用户单击.special时排除单击,但它似乎不起作用Javascript Jquery not()select在我的情况下不起作用,javascript,jquery,Javascript,Jquery,我想在用户单击.special时排除单击,但它似乎不起作用 <body> <p>normal</p> <p>normal</p> <p>normal</p> <p>normal</p> <p>normal</p> <p class="special">special</p> <p&
<body>
<p>normal</p>
<p>normal</p>
<p>normal</p>
<p>normal</p>
<p>normal</p>
<p class="special">special</p>
<p>normal</p>
<p>normal</p>
</body>
身体和身体之间的空间:不是。这意味着它选择了它的继任者
$("body :not(.special)").click(function () {
alert('test');
});
JSFiddle:
更新:除特殊DOM之外的整个页面中的警报
当您指的是整个页面时,您需要绑定html而不是正文
此外,您的标签是一个。示例中的特殊DOM是页面中的整行
如果只想禁用特殊文本上的单击,请将文本包装为一个文本。作为:
更新的小提琴:这个怎么样:
$('html').click(function(e) {
if (! $(e.target).is('.special') ) {
alert('test');
}
});
单击页面上的任意位置时,这将提示您一个警报。您需要应用:不使用p筛选不使用body
$("body p:not(.special)").click(function () {
alert('test');
});
编辑:
用于单击页面上的任意位置
$("body").click(function () {
alert('test');
}).find(".special").click(function(){return false;});
小提琴你的选择器有点过时了 尝试: 这对我有用 甚至 $body*:not.special.clickfunction{ 警报“测试”;
}; 最好在正文中附加一个单击处理程序,并测试event.target以检查它是否特殊:
$'body'选择带有标记的元素。选择没有class.special的body标记并没有多大作用,因为不存在这样的标记。您应该以段落为目标,如$'body p:not.special'中所述,但我希望在用户在我的页面上单击任意位置时发出警报。但我希望在用户在我的页面上单击任意位置时发出警报。这也将确保单击事件不会应用于正文中的每个元素。第二个代码很有趣。。但是查找会有性能问题吗?但是我想在用户单击我页面上的任何地方时发出警报。
$('html').click(function(e) {
if (! $(e.target).is('.special') ) {
alert('test');
}
});
$("body p:not(.special)").click(function () {
alert('test');
});
$("body").click(function () {
alert('test');
}).find(".special").click(function(){return false;});
$("body :not(.special)").click(function () {
alert('test');
});
$("body").children().not('.special').click(function () {
alert('test');
});
$('body').on('click', function(e) {
if (! $( e.target ).is('.special') ) {
alert( 'test' );
}
});