Event对象
Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
事件通常与函数结合使用,函数不会在事件发生前被执行!
- 什么时候会产生Event 对象呢?
当一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细信息(包括导致事件的元素、事件的类型、以及其它与特定事件相关的信息等。这个对象是在执行事件时,浏览器通过函数传递过来的。)都会被临时保存到一个指定的地方——event对象,供我们在需要的时候调用
获取event对象
在 W3C 规范中,event 对象是随事件处理函数传入的,Chrome、FireFox、Opera、Safari、IE9.0及其以上版本都支持这种方式;但是对于 IE8.0 及其以下版本,event 对象必须作为 window 对象的一个属性。
IE、Chrome:event是一个内置的全局对象
事件对象是通过事件函数的第一个参数传入(如果一个函数是被事件调用的,那么这个函数定义的第一个参数就是事件对象)
处理兼容性:
<button>按钮</button>
<script type="text/javascript">
var btn = document.getElementsByTagName("button")[0];
btn.onclick = function fn(e){
var e = e||event;
console.log(e);
}
</script>
获取事件的目标节点
event对象中包含了很多属性其中包含了触发事件时的目标元素 window.event.target;不支持IE浏览器 window.event.srcElement 支持IE
btn.onclick = function fn(e){
var e = e||event;
console.log(e);
//获取目标元素对象
var target = e.srcElement||e.target;
console.log(target);
//获取到该对象就可以获取到其中的值
console.log(target.innerHTML)
}
获取事件类型
在event对象中有type获取的是该事件的类型如:
btn.onclick = function fn(e){
var e = e||event;
//获取事件的类型
console.log(e.type)
}