我正在阅读下面列出的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 );
}
};
答案 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
的旧样式。)