2

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

event.x + document.body.scrollLeft;

我无法找到更多信息,此外,该对象在 Firefox 中未定义。它在所有其他浏览器中都能正常工作。谁能给我提供更多信息?具体来说,如何在 Firefox 中访问此对象?

4

2 回答 2

2

W3c 官方推荐

clientX并且clientY是您正在寻找的官方事件属性处理程序。screenX尽管您可能也想考虑screenY


事件 (API)

活动

创建、触发事件

事件处理程序

方向和运动数据


窗口事件 X 和 Y 属性

解释

event.x而且event.y,那些是什么?

首先, andx属性y并非所有事件中都存在。它在触发的事件上是相对的。

这是一个例子:

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

如果您在浏览器的控制台中粘贴并执行该代码,它将记录您x每次click.


虽然看一下这个例子:

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

undefined每次您从键盘释放一个键时,控制台都会记录下来,因为该onkeyup()事件不包含xy属性的任何值。

于 2013-07-11T19:04:50.590 回答
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
};
于 2013-07-11T19:19:00.473 回答