Javascript $(文档)。从两个位置单击
我调用一个外部js文件。此js文件已具有Javascript $(文档)。从两个位置单击,javascript,jquery,Javascript,Jquery,我调用一个外部js文件。此js文件已具有(文档)。请单击功能。我想要一个(文档)。在主js中单击 外部js: $(document).click(function() { //do stuff }); 我不使用全局变量。拥有$(文档)的最佳方式是什么。单击外部文件中的函数并添加一个$(文档)。单击主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');