当DOM事件调用javascript函数时, 在函数内部,您可以访问表示DOM事件的事件变量吗? 它是如何在幕后工作的?因为函数没有得到event参数,所以我们不使用argusments对象..
答案 0 :(得分:0)
DOM Events的简短摘要:
绑定Eventlistener的正确方法是:
var elem = document.querySelector("div");
elem.addEventListener("event-type",function(e){ /*e is the event object*/ });
addEventListener()
侦听DOM-Element event-type
上的elem
事件。
addEventListener()
始终将event-object作为第一个参数传递给函数。您可以通过在函数头(通常名为e
)中定义此参数或通过arguments[0]
来访问此参数。 this
指的是事件发生的Dom-Element。
IE(最高版本8)具有绑定事件处理程序的专有方法:
elem.attachEvent("event-type",function(){})
它有一些缺点:this
引用全局对象而不是DOM-Element,而event
对象不作为参数传递。
但是,Microsoft引入了window.event
,它始终保存文档中发生的最后一个事件。所以你可以在函数中使用它,如下所示:
function(){
var e = window.event;
}
这个window.event
在几个浏览器中都可用,但你不应该依赖它,也不要使用它(大多数全局变量推荐使用它)。