5.4.3 事件对象

无论何时Web浏览器触发事件,它都记录了有关事件的信息,并且将其存储在所谓的事件对象中。事件对象包含了事件发生的时候收集的信息,例如,鼠标光标的水平坐标和垂直坐标,发生事件的元素,或者事件触发的时候Shift键是否按下。

使用jQuery,事件对象可以提供给指定来处理事件的函数使用。实际上,这个对象作为参数传递给函数,因此,要访问它,只需要在函数中包含一个参数名。例如,假设想要找到鼠标光标在页面上任何地方单击时候的X坐标和Y坐标。


$(document).click(function(evt){

var xPos=evt.pageX;

var yPos=evt.pageY;

alert('X:’+xPos+'Y:’+yPos);

});//end click


这里重要的部分是evt变量。当函数调用的时候(通过在浏览器窗口的任何地方单击),事件对象可以存储到evt变量中。在函数体中,可以使用点号语法来访问事件对象的不同属性,例如,evt.pageX返回光标的水平位置(换句话说,从窗口左边界开始的像素数)。

注意:在这个例子中,evt只是程序员提供的一个变量。它不是一个特殊的JavaScript关键字,只是用来存储事件对象的一个变量。可以使用任何想要的名字,例如,event或者只是一个e。

事件对象有很多不同的属性,并且(遗憾的是)属性的列表会根据浏览器的不同而有所变化。表5-1列出了一些常见的属性。

5.4.3 事件对象 - 图1

提示:如果访问了keypress()事件的事件对象的which属性,会得到按下的键的一个数值代码。如果想要确定按下的键(a、K、9等),需要用一个JavaScript方法来处理which属性,而该方法把按键数值转换为键盘上实际的字母、数值或者符号。


String.fromCharCode(evt.which)