1. 程式人生 > >jQuery動態添加的節點事件無法觸發

jQuery動態添加的節點事件無法觸發

bsp back images on() pro http span utf css

添加節點之前如圖:

技術分享

點擊圖中的 "第一個" 之後會觸發click事件,效果如圖:

技術分享

點擊按鈕的之後,添加節點之後如圖:

技術分享

這時點擊圖中的 "第一個",卻不會觸發click事件。

此時代碼如下:

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<head>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js">
</script
> <script> $(function(){ $(".a1").on("click",function(){ alert("觸發a標簽的點擊事件!"); }); }); function cl(){ $(".div2").html(<a class="a1">第一個</a><br><a class="a2">第二個</a>); } </script> </head> <
body> <div class="div1"> <div class="div2"> <a class="a1">第一個</a> </div> <input onclick="cl()" type="button" value="添加節點"/> </div> </body> </html>

以上問題可以通過綁定幾種方法解決

1.是直接在添加標簽的時候添加一個onclick事件;

2.通過綁定這個標簽的父類或者body來達到激活click事件的效果。

改過之後的代碼如下:

<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<html>
<head>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js">
</script>
<script>
    $(function(){
        /*$(".a1").on("click",function(){
            alert("觸發a標簽的點擊事件!");
        });*/    
        
        /*$(".div1").on("click",".a1",function(){
            alert("觸發a標簽的點擊事件!");
        });*/
        
        $(".div2").on("click",".a1",function(){
            alert("觸發a標簽的點擊事件!");
        });
        
        /*$("body").on("click",".a1",function(){
            alert("觸發a標簽的點擊事件!");
        });*/
    });
    
    function cl(){
        $(".div2").html(<a class="a1">第一個</a><br><a class="a2">第二個</a>);
    }
</script>
</head>
<body>
    <div class="div1">
        <div class="div2">
            <a class="a1">第一個</a>
            
        </div>
        <input onclick="cl()" type="button" value="添加節點"/>
    </div>
</body>
</html>

如果出現,點擊一次,出現兩次click事件的話,

考慮使用propagation()方法處理冒泡。

jQuery動態添加的節點事件無法觸發