首頁 >web前端 >js教程 >怎樣處理jQuery動態新增元素時無法觸發綁定事件

怎樣處理jQuery動態新增元素時無法觸發綁定事件

php中世界最好的语言
php中世界最好的语言原創
2018-04-23 15:56:341788瀏覽

這次帶給大家怎麼處理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('这里是动态元素添加的事件');
}

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

jQuery版本升級有哪些注意事項 

jQuery外掛程式封裝步驟詳解

以上是怎樣處理jQuery動態新增元素時無法觸發綁定事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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