0

当 DOM 事件调用 javascript 函数时,在函数内部您可以访问代表 DOM 事件的事件变量吗?它在幕后如何运作?因为该函数没有获取事件参数,并且我们不使用参数对象..

4

1 回答 1

0

DOM 事件的简短摘要:

绑定事件监听器的正确方法是:

var elem = document.querySelector("div");

elem.addEventListener("event-type",function(e){ /*e is the event object*/ });

addEventListener()监听event-typeDOM-Element 上的事件elem

addEventListener()总是将事件对象作为第一个参数传递给函数。您可以通过在函数头(通常命名为e)中定义此参数或通过来访问此参数arguments[0]this指的是事件发生的 Dom-Element。

IE(最高版本 8)具有绑定事件处理程序的专有方式:

elem.attachEvent("event-type",function(){})

它有一些缺点:this指的是全局对象而不是DOM-Element,并且eventObject没有作为参数传递。

但是,Microsoft 引入window.event了始终保存文档中发生的最后一个事件的方法。因此,您可以在函数中使用它,如下所示:

function(){
   var e = window.event;
}

window.event在多个浏览器中可用,但您不应依赖它或使用它(建议大多数全局变量使用它)。

于 2013-02-08T12:52:57.563 回答