< title > Porschev---Jquery 事件冒泡 </ title > < script src = "jquery-1.3.2-vsdoc.js" type = "text/javascript" > </ script > </ head > < body > < form id = "form1" runat = "server" > < div id = "divOne" onclick = "alert('我是最外层');" > < div id = "divTwo" onclick = "alert('我是中间层!')" > < a id = "hr_three" href = "http://www.baidu.com" mce_href = "http://www.baidu.com" onclick="alert('我是最里层!')" > 点击我 </ a > </ div > </ div > </ form > </ body > </ html >

比如上面这个页面,
分为三层:divOne是第外层,divTwo中间层,hr_three是最里层;
他们都有各自的click事件,最里层a标签还有href属性。

运行页面,点击“点击我”,会依次弹出:我是最里层—->我是中间层—->我是最外层
—->然后再链接到百度.

这就是事件冒泡,本来我只点击ID为hr_three的标签,但是确执行了三个alert操作。
事件冒泡过程(以标签ID表示):hr_three—-> divTwo—-> divOne 。从最里层冒泡到最外层。

如何来阻止?
1.event.stopPropagation();

 <script type="text/javascript">
        $(function() {
            $("#hr_three").click(function(event) {
                event.stopPropagation();
  </script>

再点击“点击我”,会弹出:我是最里层,然后链接到百度

2.return false;
如果头部加入的是以下代码

<script type="text/javascript"> $(function() { $("#hr_three").click(function(event) { return false; }); }); <script>

再点击“点击我”,会弹出:我是最里层,但不会执行链接到百度页面

由此可以看出:
1.event.stopPropagation();
事件处理过程中,阻止了事件冒泡,但不会阻击默认行为(它就执行了超链接的跳转)

2.return false;
事件处理过程中,阻止了事件冒泡,也阻止了默认行为(比如刚才它就没有执行超链接的跳转)

还有一种有冒泡有关的:
3.event.preventDefault();
如果把它放在头部A标签的click事件中,点击“点击我”。
会发现它依次弹出:我是最里层—->我是中间层—->我是最外层,但最后却没有跳转到百度

它的作用是:事件处理过程中,不阻击事件冒泡,但阻击默认行为(它只执行所有弹框,却没有执行超链接跳转)

转载地址:http://m.blog.csdn.net/article/details?id=51039179

冒泡机制 气泡从水底开始往上升,由深到浅,升到最上面。在上升的过程中,气泡会经过不同深度层次的水。相对应地:这个气泡就相当于我们这里的事件,而水则相当于我们的整个dom树;事件从dom 树的底层,层层往上传递,直至传递到dom的根节点。当子元素与父元素有相同的事件时,当子元素被触发时父元素也会被触发冒泡机制 在不同浏览器中,冒泡的程度不同: IE 6.0: div -&gt; body...
最近刚学习完js基础,今天发现对js的默认事件阻止以及阻止事件冒泡有点忘记,于是写这篇文章算是做一个总结,也是加深一下印象。 1.阻止默认事件 在html中有很多自带默认事件的元素,很典型的例子:a标签,如果给a标签绑定点击事件,触发后页面会有一个刷新,是a链接默认的跳转事件,阻止这个有很多方法 给a标签href性添加 <a href="javascript:;">链接</...
上面的代码当中一个div元素当中有一个p子元素,如果两个元素都有一个click的处理函数,那么我们怎么才能知道哪一个函数会首先被触发呢? 为了解决这个问题微软和网景提出了两种几乎完全相反的概念。 事件冒泡 微软提出了名为事件
&lt;div @click="divEven" style="border:1px #188eee solid;"&gt; &lt;a href="www.baidu.com" @click="aEven"&gt;百度链接&lt;/a&gt; &lt;/div&gt; &lt;!--stop的使用:阻止事件冒泡的发生--&gt;
以前一直没有想过冒泡,不过今天居然遇到了。 情形是这样的,在我的&lt;a&gt;标签内部只是一个&lt;input type="button"&gt;按钮。那么这样我的超链接就失效了。 原代码是这样的: &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt; &lt;html&gt; &lt;he
何为事件冒泡: HTML DOM模型是个树形结构,元素之间有相互嵌套的关系,比如Click Me 中div是父元素而a是子元素。如果父子元素都绑定了同一个事件比如onClick,当内层的子元素的事件被触发时,该事件会被传递到父元素中。 jQuery中如何阻止事件冒泡: 每个jQuery事件都有一个默认的参数对象,这就是event,通过执行该对象的event.stopPropagati
现在有一个div,这个div里面有一个a标签,div和a都是有点击事件的,但是我想要做到点击a标签的时候就只触发里面a标签的点击事件,不想执行外层div的点击事件。 使用JQuery可以简单地实现,只需要加入如下代码: event.stopPropagation(); 阻止事件冒泡
&lt;html&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt; &lt;title&gt;冒泡和阻止冒泡&lt;/title&gt; &lt;script src="jque