繁体   English   中英

如何一次合并所有事件处理程序?

[英]How can I combine all event handlers at once?

假设可以多次添加事件侦听器的处理程序,如下所示:

firstPar.addEventListener("click", myFirstEventHandler, false);
firstPar.addEventListener("click", mySecondEventHandler, false);
etc...

因此,如何组合代码,以便可以通过缩短使用:

function allHandler(){
  myFirstEventHandler();
  mySecondEventHandler();
}

要么,

function allHandler(){
   return function(){
      myFirstEventHandler();
     mySecondEventHandler();
  }
}

这样我就可以使用:

firstPar.addEventListener("click",allHandler,false);

或者,另一种方式呢?

第一种方法很好,但我将包含以下事件:

function myFirstEventHnadler (event) {
    event.stopPropagation(); // To answer your question in the comments.
}

function mySecondEventHandler (event) {
}

function allHandler(event){
    myFirstEventHandler(event);
    mySecondEventHandler(event);
}

演示: http//jsfiddle.net/aUE2L/

这可能会引入范围界定的复杂性,但是为什么不使用匿名函数呢?

firstPar.addEventListener("click", function(){
  myFirstEventHandler(); 
  mySecondEventHandler();
}, false);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM