学习资料笔记

小木的学习笔记

div的子元素的点击事件会触发父元素的点击事件(禁用事件的浮升)

2020-3-31 小木 前端

问题:
给一个很简单的例子,当点击第二个div的时候,会同时触发此div与其父元素的点击事件,按照官方的说法,这是事件的浮升,那么要怎么阻止这种情况呢?
<div οnclick="alert();">
    <div οnclick="alert();"></div>
</div>

解决方案:
使用 event.cancelBubble=true;
<div οnclick="alert();">
    <div οnclick="alert();event.cancelBubble=true;"></div>
</div>

Jquery提供两种解决方案来阻止事件冒泡
1、event.stopPropagation();
$("#element").mousedown(function (event) {
   event.stopPropagation();
});

2、return false;
$("#element").mousedown(function (event) {
   return false;
});

区别:
return false;不仅阻止了事件往上冒泡,而且阻止了事件本身。
event.stopPropagation();则只阻止了事件往上冒泡,不阻止了事件本身。

标签: 点击事件