当 DOM 事件调用 javascript 函数时,在函数内部您可以访问代表 DOM 事件的事件变量吗?它在幕后如何运作?因为该函数没有获取事件参数,并且我们不使用参数对象..
问问题
87 次
1 回答
0
DOM 事件的简短摘要:
绑定事件监听器的正确方法是:
var elem = document.querySelector("div");
elem.addEventListener("event-type",function(e){ /*e is the event object*/ });
addEventListener()
监听event-type
DOM-Element 上的事件elem
。
addEventListener()
总是将事件对象作为第一个参数传递给函数。您可以通过在函数头(通常命名为e
)中定义此参数或通过来访问此参数arguments[0]
。this
指的是事件发生的 Dom-Element。
IE(最高版本 8)具有绑定事件处理程序的专有方式:
elem.attachEvent("event-type",function(){})
它有一些缺点:this
指的是全局对象而不是DOM-Element,并且event
Object没有作为参数传递。
但是,Microsoft 引入window.event
了始终保存文档中发生的最后一个事件的方法。因此,您可以在函数中使用它,如下所示:
function(){
var e = window.event;
}
这window.event
在多个浏览器中可用,但您不应依赖它或使用它(建议大多数全局变量使用它)。
于 2013-02-08T12:52:57.563 回答