在使用jquery處理追加元素的時候,可能會遇到一種情況:追加元素之后的事件不執(zhí)行。這種情況一般是因為jquery不能夠自動綁定事件到動態(tài)生成的元素上。
// 示例代碼 $('.btn').on('click', function(){ var el = '<div class="box"></div>'; $('body').append(el); // 動態(tài)添加元素 }); $('.box').on('click', function(){ // 無法綁定事件 $(this).addClass('active'); });
在上面的示例代碼中,我們在點擊按鈕時會動態(tài)添加一個class為box的元素,然后想要給這個元素綁定點擊事件,但實際上是無法綁定成功的。因為這個元素是動態(tài)生成的,jquery不能夠自動綁定事件。
解決這個問題的方法有兩種:
- 使用on方法綁定事件,而不是bind、live、delegate等方法。
- 使用on方法的委托方法,綁定到包含這個動態(tài)元素的父元素上。這樣點擊子元素時,事件仍然會冒泡到父元素上執(zhí)行。
// 示例代碼,使用on方法綁定事件 $('body').on('click', '.box', function(){ $(this).addClass('active'); });
以上就是關(guān)于jquery追加元素事件不執(zhí)行的解決方案。
上一篇css引用文件怎么寫
下一篇css引入外部字體樣式