在前端頁面的時候,會常常遇到用JavaScript動態建立出來的Button按鈕或其餘標籤沒法使用點擊事件的問題。以下代碼,使用jquery在body中動態建立一個class爲demo的Button按鈕,當點擊這個按鈕時沒法觸發點擊事件。html
<script> $(function(){ $("body").html("<button class='demo'>按鈕</button>"); $(".demo").click(function(){ alert("彈窗"); }); }); </script> <body> </body>
將以上代碼中的 $(「.demo」).click(function(){………}); 修改成 $(document).on(「click」,」.demo」,function(){………})便可:前端
<script> $(function(){ $("body").html("<button class='demo'>按鈕</button>"); $(document).on("click",".demo",function(){ alert("彈窗"); }); }); </script> <body> </body>
此時事件冒泡到document對象上,當檢測事件的target,若是與傳入的選擇符(這裏是selector)匹配,就觸發事件,不然不觸發。jquery
.on()方法的 [.selector]用法詳情見:https://www.runoob.com/jquery/event-on.htmlspa