怎么来javascript函数有权访问事件变量?

时间:2013-02-08 09:09:16

标签: javascript dom

当DOM事件调用javascript函数时, 在函数内部,您可以访问表示DOM事件的事件变量吗? 它是如何在幕后工作的?因为函数没有得到event参数,所以我们不使用argusments对象..

1 个答案:

答案 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在几个浏览器中都可用,但你不应该依赖它,也不要使用它(大多数全局变量推荐使用它)。