在 JavaScript 中,事件对象 event
是浏览器在事件被触发时自动传递给事件处理函数的一个参数,它包含了事件发生时的所有信息,如鼠标位置、键盘按键、事件类型、目标元素等。
🧠 一句话解释:
event
是一个包含了当前事件信息的对象,当你监听一个事件(如 click、keydown)时,JS 会将它作为参数传入事件处理函数。
📦 常见事件对象结构
element.addEventListener("click", function(event) {
console.log(event); // 打印整个事件对象
console.log(event.type); // click
console.log(event.target); // 被点击的元素
});
🎯 1. event
常用属性
属性 / 方法 | 含义 |
---|---|
event.type | 事件类型,如 "click" 、"keydown" |
event.target | 事件触发的目标元素(可能是子元素) |
event.currentTarget | 当前绑定事件的元素(通常是你监听的元素) |
event.clientX/Y | 鼠标相对浏览器窗口的 X/Y 坐标 |
event.pageX/Y | 鼠标相对文档页面的坐标(包含滚动) |
event.key | 按下的键名(如 "a" 、"Enter" ) |
event.keyCode | 按键对应的 ASCII 编码(已废弃) |
event.preventDefault() | 阻止默认行为,如链接跳转、表单提交等 |
event.stopPropagation() | 阻止事件冒泡到父元素 |
🧪 2. 示例:点击事件获取坐标
document.addEventListener("click", function(event) {
console.log("你点击了页面!");
console.log("位置:", event.clientX, event.clientY);
});
⌨️ 3. 示例:键盘事件
document.addEventListener("keydown", function(event) {
console.log("你按下了:", event.key); // 例如 "a", "Enter"
});
🧱 4. 阻止默认行为 + 冒泡
<a href="https://www.google.com" id="link">点我</a>
<script>
document.getElementById("link").addEventListener("click", function(event) {
event.preventDefault(); // 阻止跳转
event.stopPropagation(); // 阻止冒泡
alert("你点击了链接,但我拦住了它!");
});
</script>
🚦 5. 常见事件类型与使用场景
事件名 | 说明 |
---|---|
click | 鼠标点击 |
mousemove | 鼠标移动 |
keydown | 按下键盘 |
submit | 表单提交 |
change | 表单值变更 |
input | 输入框实时输入 |
contextmenu | 右键菜单事件 |
🧠 小知识:事件对象是如何传入的?
在原生 JS 中:
element.addEventListener('click', function(event) {
// event 是浏览器自动传进来的
});
在 HTML 行内绑定中,需显式传入:
<button onclick="sayHi(event)">点我</button>
<script>
function sayHi(e) {
console.log(e.target); // <button>
}
</script>
✅ 总结
要点 | 内容 |
---|---|
什么是 event | 包含事件类型、触发对象、鼠标/键盘数据等 |
如何获取 | 事件监听器函数的第一个参数 |
用途 | 获取事件详情、阻止默认行为、阻止冒泡、判断按键等 |
发表回复