Ondblclick和Dblclick之间的区别

时间:2012-02-10 10:41:12

标签: javascript jquery html css jquery-mobile

我正在阅读下面列出的Else的javascript代码

window.onload = function(){
  // Listen to the double click event.
  if ( window.addEventListener ) {
    document.body.addEventListener( 'dblclick', onDoubleClick, false );
  }
  else if ( window.attachEvent ) {
  /* attachEvent is Microsoft and addEventListener is W3C */
    document.body.attachEvent( 'ondblclick', onDoubleClick );
  }
}; 

2 个答案:

答案 0 :(得分:2)

事件的名称是“dblclick”,事件(处理)属性称为“ondblclick”。即使在IE中,事件本身也被命名为“dblclick”(ref。)

答案 1 :(得分:0)

无论有没有“开启”,都是同一事件。

历史上,通过元素属性进行的内联事件处理使用了“on”事件名称:

<div id="div1" ondblclick="someFunction();">

在脚本块中分配事件处理程序也使用了“on”名称:

document.getElementById("div1").ondblclick = someFunction;

Microsoft的attachEvent()方法(IE8及更低版本)使用了“on”事件名称:

document.getElementById("div1").attachEvent("ondblclick", someFunction);

但是基于标准的.addEventListener(IE9和其他浏览器)使用非“on”事件名称:

document.getElementById("div1").addEventListener("dblclick",onDoubleClick,false);

您引用的代码首先检查是否定义了addEventListener,它将适用于包括IE9在内的现代浏览器,如果不是,则会尝试attachEvent,这将被定义在旧版本的IE中。 (讽刺的是它为dblclick事件使用现代方法的麻烦,但使用.onload的旧样式。)