Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 $(文档)。从两个位置单击_Javascript_Jquery - Fatal编程技术网

Javascript $(文档)。从两个位置单击

Javascript $(文档)。从两个位置单击,javascript,jquery,Javascript,Jquery,我调用一个外部js文件。此js文件已具有(文档)。请单击功能。我想要一个(文档)。在主js中单击 外部js: $(document).click(function() { //do stuff }); 我不使用全局变量。拥有$(文档)的最佳方式是什么。单击外部文件中的函数并添加一个$(文档)。单击主js中的函数?您可以同时拥有这两个功能。只要没有人停止传播,两个事件处理程序都将运行 如果你还有什么问题,一定要把代码贴出来 稍微扩展一下答案: 实际上,有一种方法(错误的方法)一次只支持一

我调用一个外部js文件。此js文件已具有
(文档)。请单击
功能。我想要一个
(文档)。在主js中单击

外部js:

$(document).click(function() {
    //do stuff
});

我不使用全局变量。拥有
$(文档)的最佳方式是什么。单击外部文件中的
函数并添加一个
$(文档)。单击主js中的
函数?

您可以同时拥有这两个功能。只要没有人停止传播,两个事件处理程序都将运行

如果你还有什么问题,一定要把代码贴出来

稍微扩展一下答案: 实际上,有一种方法(错误的方法)一次只支持一个单击事件处理程序。如果您这样做:

element.onclick = function () {alert('a')};
然后

element.onclick = function () {alert('b')};
您将只收到一个警报(说“b”)。这就是为什么你不应该使用它。这是一个没有人知道他们在做什么的时代的残余。现在是2015年,我们谈论得越少越好

现在,当您使用注册事件处理程序的正确方法时:

element.addEventListener('click', function () {alert('a')});
element.addEventListener('click', function () {alert('b')});
您将收到两个警报

为了消除任何混淆,值得一提的是,jQuery在执行
$(元素)时在内部使用相同的旧
addEventListener
。单击(f)
$(元素)。单击('click',f)
,或者以现在的方式工作

您可以在两个文件上都添加“单击”事件,但问题是 您单击两个处理程序都将触发的特定元素 同时,如果我没有错,两个处理器的工作方式也会不同 不应该同时开火

使用具有不同事件名称空间的事件触发器的最佳方法

然后,当您需要触发时,您可以选择顺序

 $(document).trigger('click.func1').trigger('click.func2');
或者您可以同时触发两个事件:

$(document).trigger('click'); 

使用Javascript和浏览器时,千万不要说never:P,但应该没问题。我将扩大我的答案,看看是否有帮助。关于你的“绑定”评论,我不确定我是否理解。在回调中使用
bind
非常常见,但原因不同。与多个回调相互干扰无关。
$(document).trigger('click');