此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

js冒泡事件小解

何为冒泡事件?简单来说事件就像一个水里的泡泡,先触发当前对象再触发其父元素,然后是父元素的父元素...

eg:

<div class="out" onclick= "alert('out')">
       <div class="middle" onclick= "alert('middle')">
            <input class="inner" type="button" onclick= "alert('inner')"/>
       </div>
</div>

点击button,依次弹出inner, middle, out。

终止于哪个元素?

从当前元素逐步往上,有的浏览器终止于document,有的是window

 

如何阻止冒泡事件?

<div class="out" onclick= "alert('out')">
       <div class="middle" onclick= "alert('middle')">
            <input class="inner" type="button" onclick= "alert('inner')"/>
       </div>
</div>

<script>

       function a(event){
             alert("inner");

      //兼容IE
             event.stopPropagation? event.stopPropagation():(event.cancelBubble= true);
       }

</script>

这样就只弹出inner

注: 网上有人说return false;和event.preventDefault()也能阻止冒泡,亲测,无效。。。

posted @ 2016-10-22 17:02  炎泽  阅读(156)  评论(0编辑  收藏  举报