js点击事件执行多次,

  js点击事件执行多次,

  字号:小、中、大

  最近用了JavaScript事件处理机制,发现了一些信息。

  以前写JavaScript程序,都是采用事件。

  程序代码

  object.event=handler

  初始化。这种方法常见于InternetExplorer、Mozilla/Firefox和Opera。然而,存在这样的问题,即只有一个事件可以对应于一个事件处理过程。如果你想让一个事件按顺序执行多个进程,这是没有用的。

  但是,InternetExplorer从5.0开始提供了attachEvent方法。使用这种方法,您可以为一个事件分配多个流程。AttachEvent也适用于当前的Opera。但问题是Mozilla/Firefox不支持这种方式。但是,它支持另一个addEventListener方法,该方法类似于attachEvent,也用于为一个事件分配多个进程。但是,他们分配的事件有一些不同。在attachEvent方法中,事件以“on”开头,而在addEventListener中,事件没有以“on”开头。此外,addEventListener还有第三个参数,通常指定为false。

  所以,如果你想给你程序中的一个事件分配多个进程,只要先判断浏览器,然后根据不同的浏览器选择是使用attachEvent还是addEventListener就可以了。例子如下:

  程序代码

  if(document.all){

  window.attachEvent(onload ,handler 1);

  window.attachEvent(onload ,handler 2);

  }

  否则{

  window.addEventListener(load ,handler1,false);

  window.addEventListener(load ,handler2,false);

  }

  注意:由attachEvent分配的多个过程的执行顺序是随机的,所以这些过程之间不应该有序列依赖关系。此外,attachEvent和addEventListener不仅适用于窗口对象,其他一些对象也支持此方法。

  程序代码

  functionaddEvent(obj,evenTypeName,fn){

  if(obj.addEventListener){

  obj . addevent listener(event typename,fn,true);

  returntrue

  }elseif(obj.attachEvent){

  return obj . attach event( on event typename,fn);

  }否则{

  返回false;

  }

  }

js点击事件执行多次,