首頁  >  文章  >  web前端  >  jquery阻止事件冒泡及其解決方法

jquery阻止事件冒泡及其解決方法

一个新手
一个新手原創
2017-09-13 10:05:582087瀏覽


動態新增標籤的live事件

註:jquery版本1.8之後不在支援live事件

在實際專案中遇到的問題,動態新增的標籤
 live阻止冒泡失效,無論是用return false或是用e.stopPropagation()都無法阻止冒泡發生
 以下是自己總結的例子

html
<p id="box"> 
  <a href="javascript:;" class="delete">init html</a>
</p> 
<button id="add">add html</button>
jq
 $(function() {

     // 用click事件
    $(document).click( function(event) {
        console.log(&#39;click&#39;);
        event.stopPropagation();
    });

    // 用delegate事件
    $(document).delegate(&#39;.delete&#39;,&#39;click&#39;, function(event) {
        console.log(&#39;delegate&#39;);
        event.stopPropagation();
    });

    // 用live事件
    $(&#39;.delete&#39;).live(&#39;click&#39;, function(event) {
        console.log(&#39;live&#39;);
        event.stopPropagation();
        //return false;
    });

    // 新添加的a标签
    $(&#39;#add&#39;).click(function() {
        var html = &#39;<a href="javascript:;" class="delete">new html 1</a>&#39;;
        $(&#39;#box&#39;).append(html);
    });

    $(&#39;#box&#39;).click(function() {
        console.log(&#39;box emit&#39;);
    });

});

解決方法:
我們知道event.stopPropagation()對click阻止冒泡有效,那就可以在新動態添加的標籤上綁定click。

以上是jquery阻止事件冒泡及其解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn