最近写代码遇到一个细节的小问题,点击子元素标签不仅触发了子元素点击事件,还会执行父元素点击事件,解决方式如下:
<li>
<a>
子元素
</a>
<i tabclose="11" >
子元素
</i>
</li>
为li标签和i标签都添加点击事件后,当我点击i标签区域,li标签的点击事件也会触发,后来经过查询文档发现,避免这个问题只需要为i标签的点击事件上加上jquery防止事件冒泡即可,如下:
$("i").on("click", "[tabclose]", function(e) {
e.stopPropagation();
//防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数。
var id = $(this).attr("tabclose");
});
//或者
$("i").click(function(e){
e.stopPropagation();
//防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数。
var id = $(this).attr("tabclose");
})