首頁  >  文章  >  web前端  >  jQuery在新增元素時無法觸發綁定事件怎麼處理

jQuery在新增元素時無法觸發綁定事件怎麼處理

php中世界最好的语言
php中世界最好的语言原創
2018-03-15 11:38:391689瀏覽

這次帶給大家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=&#39;newBtn btn btn-default&#39;>新按钮</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中文網其他相關文章!

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