Javascript中的事件对象,找不到信息

时间:2013-07-11 18:58:33

标签: javascript events firefox cross-browser

我相信javascript中有一个名为event的对象,我在一些代码中看到它并不是由我写成的行看起来像这样:

event.x + document.body.scrollLeft;

我无法找到更多信息,此外,Firefox中未定义该对象。它适用于所有其他浏览器。任何人都可以向我提供更多信息吗?具体来说,我如何在Firefox中访问此对象?

2 个答案:

答案 0 :(得分:2)

Official W3c reccomendation

clientXclientY是您正在寻找的官方事件属性处理程序。虽然您可能也想考虑screenXscreenY


Events (API)

Events

Creating, triggering events

Event handlers

Orientation and motion data


Window Event X and Y property

说明

event.xevent.y,这些是什么?

首先, xy属性在所有事件中。触发事件是相对的。

以下是一个例子:

document.body.onclick = function(){console.log(window.event.x)};

如果您在浏览器的控制台中粘贴并执行该代码,则每次x时都会记录光标的click位置。


虽然看一下这个例子:

document.body.onkeyup = function(){console.log(window.event.x)};

每次从键盘上释放密钥时,控制台都会记录undefined,因为onkeyup()事件不包含xy属性的任何值

答案 1 :(得分:0)

event(或只是e)是事件处理函数的常见第一个参数名称。

在除IE之外的所有现代浏览器中,注册为事件处理程序的函数将作为其第一个参数传递Event对象,其中包含有关该事件的信息。

在IE中,全局event对象(window.event)中提供了类似的信息。

由于这些浏览器差异,您经常会看到事件处理程序样板代码,例如:

var clicked = function (e) {
  e = e || window.event;  // sets e to window.event if no parameter was passed
};