Javascript中的事件
JavaScript中的e?
e是事件对象,就是js事件相关信息对象,而且根据不同的事件,属性值会不一样。比如 obj.onclick=function(e){
console.log(e);
}
这里的e就是obj点击事件的事件对象。
一个完整的事件系统,通常存在以下三个角色:
事件对象:用于储存事件的状态。比如事件在其中发生的元素(e.srcElement),键盘按键的状态,鼠标的位置,鼠标的按钮的状态。事件对象由一个事件源生成。
什么时候产生事件对象?
当用户点击某个事件源的时候,就产生了一个事件对象。当事件监听器被触发时,就是监听器相应函数,事件就会被执行。该事件的本质就是一个函数,而这个函数的形参就收一个even对象,也就是事件对象。
事件源对象:当前事件在操作的对象,过索引机制得到的对象(元素节点button、submit等什么的),文档对象,window对象 ,XMLHttpRequest对象等。
事件监听器:调用事件处理方法的对象。当一个事件源生成一个事件对象时,在IE中,事件对象恒为全局属性window.event的分身。onclick,onmousemove之类的事件属性,它们充当事件监听器(事件驱动开关),onclick后面的函数就是回调函数(事件驱动程序),这是异步执行的。
JavaScript里面var e=window.event;var obj=e.srcElement;什么作用?
var e=window.event;
是获取事件对象,这里是IE下的,event是window的一个属性;
var obj=e.srcElement;
是获取发生事件的那个元素,这个元素是一个对象,也就是事件源对象。这也是IE下的。
要实现所有浏览器兼容,就用以下代码:
var e = window.event || event;
var obj = e.srcElement || e.target
有如下题目:
1.请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)
解答:<script type="text/javascript">
document.onclick=function(e){
var e=(e||window.event);//获取事件对象
var o=e["target"]||e["srcElement"];//获取发生事件的元素,即事件源
alert(o.tagName.toLowerCase());
}
</script>
document 简单的理解就是页面。
onclick 是点击事件。
document.onclick 就是给页面添加点击事件。