這次帶給大家jQuery在新增元素時無法觸發綁定事件怎麼處理,解決jQuery在新增元素時無法觸發綁定事件的注意事項有哪些,下面就是實戰案例,一起來看一下。
最近遇到一個問題,也就是當用jquery動態加入元素後,發現給動態新增的元素卻無法觸發事件。後來在網路上查閱了一些資料,發現原來要這樣處理:
先上我出錯的程式碼:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="external nofollow" > <script src="//cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script> <script> $(document).ready(function(){ //这里是动态添加元素 $(".add").click(function(){ var btn = $("<button class='newBtn btn btn-default'>新按钮</button>"); $("body").append(btn); })<br><br>//这里是为添加的元素添加事件 $(".newBtn").click(function(){ alert("这里是新添加的元素触发的事件"); }) }) </script> </head> <body> <button class=" add btn btn-default">添加按钮</button> </body> </html>
奉上我的解決方法
##方法一:綁定live事件(live事件只在jquery1.9以下才支持,高版本不支援)。
$(".newBtn").live("click",function(){ ///jquery 1.9(不包括1.9)以下可以 alert('这里是动态元素添加的事件'); })
方法二:利用on()事件綁定($(ParentEle).on("click",".thisEle",function(){ })
$("body").on("click", ".newBtn", function() { alert('这里是动态元素添加的事件'); }); //这里的ParentEle是 thisEle的父辈元素或者祖先元素,ParentEle可以是document,也可以是body等。 //注意:如果此时调用的函数是外部定义好的函数,那在调用的时候不要加(),不然会跳过点击事件直接触发函数
$("body").on("click", ".newBtn",aa ); function aa(){ alert('这里是动态元素添加的事件'); }
ok,問題解決,繼續爬坑。
推薦閱讀:
jquery trigger函數無法觸發a標籤應該如何處理怎麼用jquer實作table表格行列互換jquery的表單驗證提交#jQuery的複選框選擇並且取得值以上是jQuery在新增元素時無法觸發綁定事件怎麼處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!