首頁 > web前端 > js教程 > 使用jQuery如何解決動態新增元素無法觸發綁定事件

使用jQuery如何解決動態新增元素無法觸發綁定事件

亚连
發布: 2018-06-14 11:38:50
原創
3417 人瀏覽過

這篇文章主要介紹了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(&#39;这里是动态元素添加的事件&#39;);
})
登入後複製

方法二:利用on()事件綁定($(ParentEle).on("click",".thisEle",function(){ })

$("body").on("click", ".newBtn", function() {
   alert(&#39;这里是动态元素添加的事件&#39;);
});
//这里的ParentEle是 thisEle的父辈元素或者祖先元素,ParentEle可以是document,也可以是body等。
//注意:如果此时调用的函数是外部定义好的函数,那在调用的时候不要加(),不然会跳过点击事件直接触发函数
登入後複製
$("body").on("click", ".newBtn",aa );
function aa(){
    alert(&#39;这里是动态元素添加的事件&#39;);
}
登入後複製

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

使用jQuery CSS如何實作table表格

透過nodejs使用http模組發送請求(詳細教學)

使用Angular如何實現國際化(詳細教學)

以上是使用jQuery如何解決動態新增元素無法觸發綁定事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板