1. 事件对象

什么是事件对象?

事件发生以后,会产生一个事件对象,作为参数传给监听函数。浏览器原生提供一个Event对象。
每一个事件都会有一个对应的对象来描述这些信息,我们就把这个对象叫做 事件对象

例如:
  触发的事件类型
  触发一个点击事件的时候,点在哪个位置了,坐标是多少
  触发一个键盘事件的时候,按的是哪个按钮

2. 获取事件对象

2.1 直接使用event获取

DOM事件处理函数中可以使用 event 来获取事件对象,例如:

document.body.onclick = function(){
    console.log(event); // 鼠标事件对象
}
<span onclick="console.log(event)">hello world</span>

上述两种方式都可以在控制台输出事件对象,里面包含了表示事件相关内容的键值对。

2.2 在事件处理函数中使用浏览器赋予的形参 e

document.body.onclick = function(e){
    // 如果需要兼容IE低版本
    e = e || window.event;
    console.log(e); // 鼠标事件对象
}

需要注意的是,行内绑定的事件处理函数并没有这个形参,因为行内绑定的写法是函数调用,JS中声明函数接受的值为调用传入的值,而非浏览器传递的值。

<span onclick="clickHandle()">这里是函数调用,相当于自己传值</span>
<span onclick="clickHandle(123)">传入123</span>
<script>
    function clickHandle(e){
        console.log(e); // undefined 123
    }
</script>
文档更新时间: 2023-04-19 19:37   作者:孙老师