JavaScript中有一类对象是不能被忽视的,那就是事件对象。
事件对象,是用来记录一些事件发生时的相关信息的对象。事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁。
JavaScript中,常用的几个事件对象为一下几个:
1. srcElement :事件源对象
使用:event.srcElement.tagName 、event.srcElement.type
2. keyCode :键盘码对象
使用:event.keyCode
需要注意的是:
onkeypress事件只能运用于数字字母键,即按下任何数字键、26字母键就可以触发这个事件,但对系统按钮(箭头键和功能键)无法识别;
onkeydown和onkeyup事件能运用于任何键盘键(包括系统按钮,如箭头键和功能键)时发生。
所以,当需要获取键盘码的对象是上述两种情况之一时,应该区别对待,选用合适的事件。
3. clientX, clientY :客户端浏览器的坐标对象
即浏览器地址栏下方的空白区域的坐标,经常与鼠标点击事件配合使用。
4. screenX, screenY:屏幕上当前的坐标
即当鼠标事件发生时,屏幕上鼠标当前的坐标,也是经常与鼠标点击事件配合使用。
5. returnValue:事件返回值
event.returnValue
6. cancelBubble:“消除冒泡”事件对象
当不同级元素间存在相同事件,如:
<body οnclick="fun()">
<div οnclick="fun1()">
</div>
</body>
时,点击子元素导致连续触发事件,像冒泡一样从内往外冒。所以叫“消除冒泡”事件对象。
使用:如上面的例子,在fun1函数中加上这么一句:
event.cancelBubble= true; //消除冒泡
另外,我们需注意:
IE和火狐对事件对象存在着兼容性问题,解决方法是自己写一个函数,如下所示:
例:
<div id=one></div>
<script>
one.οnmοusedοwn=function(e){
var ev=e || window.event;
// 接下来,对对象的操作不用event而使用ev
var dx=ev.clientX;
var dy=ev.clientY;
var se=ev.srcElement.tagName;
var code =ev.keyCode;
......
</script>
更详细的信息可见博客园文章:http://www.cnblogs.com/sntetwt/p/3309195.html