Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 将js事件绑定到除1个元素之外的文档_Javascript_Jquery - Fatal编程技术网

Javascript 将js事件绑定到除1个元素之外的文档

Javascript 将js事件绑定到除1个元素之外的文档,javascript,jquery,Javascript,Jquery,基本上,我有一个弹出窗口,当它在外面的任何地方被点击时,我想隐藏它,但是有一个元素(这是另一个弹出窗口,比如说div#另一个弹出窗口)。然后我点击另一个弹出窗口,它不应该隐藏原来的。。现在是这样,因为我有: $(document).bind('click', methods.hide); 如何将其绑定到文档,除了#另一个弹出窗口?:) 您确实不能,但可以检查内部方法。如果目标元素是,则隐藏,然后再弹出另一个弹出窗口,并在执行任何操作之前立即退出函数。通过使用unbind,您可以执行以下操作

基本上,我有一个弹出窗口,当它在外面的任何地方被点击时,我想隐藏它,但是有一个元素(这是另一个弹出窗口,比如说div#另一个弹出窗口)。然后我点击另一个弹出窗口,它不应该隐藏原来的。。现在是这样,因为我有:

  $(document).bind('click', methods.hide);

如何将其绑定到文档,除了#另一个弹出窗口?:)

您确实不能,但可以检查内部
方法。如果目标元素是
,则隐藏
,然后再弹出另一个弹出窗口
,并在执行任何操作之前立即退出函数。

通过使用unbind,您可以执行以下操作:

$(document).bind('click',methods.hide);
$('#AnotherPopup').unbind('click',methods.hide);
阅读更多关于#的点击处理程序另一个弹出窗口是阻止文档获取点击事件

$(document).bind("click", function () {
   alert(this.innerHTML) 
});
$('#AnotherPopup').click(function () {return false;});

我认为这行不通。实际上,methods.hide并没有绑定到另一个弹出窗口,而是绑定到文档。所以没有什么可以解开的…所以。。您实际上是将EventHandler绑定到除一个之外的所有DOM元素?这不是一个好主意。@erlando,这是OP要求的,但这根本不是正确的方法。在这种情况下,最好绑定到文档,然后检查另一个弹出窗口。绑定到DOM中的/every/元素是不必要的,而且需要大量资源。@erlando,您现在怎么看?