Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery not()select在我的情况下不起作用_Javascript_Jquery - Fatal编程技术网

Javascript Jquery not()select在我的情况下不起作用

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&

我想在用户单击.special时排除单击,但它似乎不起作用

<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' );
    }
});