JavaScript 核心基础事件处理:绑定方式与事件冒泡

事件处理是交互逻辑的核心,需掌握不同绑定方式的区别,以及事件冒泡的原理与控制。

1. 事件绑定的 2 种方式:覆盖 vs 多播

方式 1:onclick 直接绑定(会覆盖)

特点:同一元素多次绑定同一事件,后绑定的会覆盖前绑定的,最终只有最后一个事件生效。
示例

var btn = document.querySelector(“#btn”);
// 第一个事件:被覆盖,不生效
btn.onclick = function() {
alert(“第一个点击事件”);
};
// 第二个事件:覆盖第一个,最终生效
btn.onclick = function() {
alert(“第二个点击事件”);
};

方式 2:addEventListener 绑定(多播,不覆盖)

特点:同一元素多次绑定同一事件,所有事件按绑定顺序依次执行,不会覆盖(称为“多播事件委托”)。
示例

var btn = document.querySelector(“#btn”);
// 第一个事件:正常执行
btn.addEventListener(“click”, function() {
alert(“第一个点击事件”);
});
// 第二个事件:在第一个之后执行
btn.addEventListener(“click”, function() {
alert(“第二个点击事件”);
});

2. 事件冒泡:从子元素到父元素的事件传播

原理

当元素触发事件(如点击)时,事件会从“最内层子元素”向“最外层父元素”逐级传播,这一过程称为“事件冒泡”。
示例场景:div 包裹 form,form 包裹按钮,三者均绑定点击事件:

<div id=”parent”>
<form id=”child”>
<button id=”btn”>点击</button>
</form>
</div>

<script>
window.onload = function() {
// 按钮点击事件(最内层)
document.querySelector(“#btn”).addEventListener(“click”, function() {
alert(“按钮事件”);
});
// form 点击事件(中间层)
document.querySelector(“#child”).addEventListener(“click”, function() {
alert(“form 事件”);
});
// div 点击事件(最外层)
document.querySelector(“#parent”).addEventListener(“click”, function() {
alert(“div 事件”);
});
};
</script>

执行顺序:点击按钮后,依次弹出“按钮事件”→“form 事件”→“div 事件”(从内到外传播)。

阻止事件冒泡

若需避免父元素事件触发,可通过事件对象的 stopPropagation() 方法阻止冒泡:

document.querySelector(“#btn”).addEventListener(“click”, function(e) {
alert(“按钮事件”);
e.stopPropagation(); // 阻止事件向上传播,父元素事件不再执行
});

 

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » JavaScript 核心基础事件处理:绑定方式与事件冒泡

提供最优质的资源集合

立即查看 了解详情