淘先锋技术网

首页 1 2 3 4 5 6 7

JavaScript中常见的事件处理程序有事件冒泡和事件捕获两种方式。其中,事件冒泡是最常见的一种方式,这也是所有主流浏览器默认的事件处理方式。

下面我们来看一下事件冒泡的具体实现。事件冒泡是从最深的节点开始,逐步向上传播事件,直到传递到其父元素或者最上层元素为止。举个例子,当你在一个嵌套式的HTML文档中同时点击里层div和外层div时,事件会先传递到最里层的div,再向外一层一层传递,直到传递到最外层的div或者document为止。

<!DOCTYPE html>
<html>
<head>
<title>事件冒泡</title>
</head>
<body>
<div id="div1">
<div id="div2">
<p id="p1">事件冒泡</p>
</div>
</div>
</body>
</html>

在上面的代码中,当你点击p1时,会弹出"点击了p1"的提示框;当你点击div2时,会弹出"点击了div2"的提示框;当你点击div1时,会弹出"点击了div1"的提示框。这三个div节点的绑定顺序是p1在div2中,div2在div1中。因此,事件冒泡的顺序是从p1开始,到div2,再到div1。

上面的代码中,我们使用了addEventListener()方法,这是HTML5新增的事件绑定方法。其中第三个参数是是否支持事件捕获,这里我们设置为false,即不支持事件捕获,也就是使用事件冒泡的方式处理事件。如果你希望使用事件捕获的方式处理事件,可以将这个参数设置为true。

done!