首頁 >web前端 >js教程 >JS實作為動態新增的元素增加事件功能範例

JS實作為動態新增的元素增加事件功能範例

亚连
亚连原創
2018-05-26 17:30:001831瀏覽

這篇文章主要介紹了JS實現為動態添加的元素增加事件功能,結合實例形式分析了javascript基於事件委託實現針對動態添加的元素增加事件的相關操作技巧,需要的朋友可以參考下

本文實例講述了JS實作為動態添加的元素增加事件功能。分享給大家供大家參考,具體如下:

我們在日常開發中有時會透過js創建一些元素,但是如果使用原始的for循環為創建的節點添加事件的方法往往行不通:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>www.jb51.net js动态添加事件</title>
</head>
<body>
 <ul id="out-ul">
  <li class="out-li">123</li>
  <li class="out-li">123</li>
  <li class="out-li">123</li>
 </ul>
 <button id="btn">添加</button>
 <script>
  document.getElementById(&#39;btn&#39;).addEventListener(&#39;click&#39;,function(){
   var htmlFragment=&#39;<li>我是新增的li</li>&#39;;
   var addLi=document.createElement(&#39;li&#39;);
   addLi.innerHTML=htmlFragment;
   outUl.appendChild(addLi);
  },false);
  var outUl=document.getElementById(&#39;out-ul&#39;)
  var outLi=outUl.getElementsByClassName(&#39;out-li&#39;);
  for(var i=0;i<outLi.length;i++){
   outLi[i].onclick=function(){
    alert(1);
   }
  }
 </script>
</body>
</html>

運行效果:

#例如這樣,透過for循環給li添加的事件無法綁定到新增的li上邊,詳細的原因這裡不做解釋。那麼這個如何解決呢,其實辦法也簡單,就是透過事件委託的方式去解決,直接上程式碼,上面的程式碼簡單改造:

##

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>www.jb51.net js动态添加事件</title>
</head>
<body>
 <ul id="out-ul">
  <li class="out-li">123</li>
  <li class="out-li">123</li>
  <li class="out-li">123</li>
 </ul>
 <button id="btn">添加</button>
 <script>
  var outUl=document.getElementById(&#39;out-ul&#39;)
  var outLi=outUl.getElementsByClassName(&#39;out-li&#39;);
  document.getElementById(&#39;btn&#39;).addEventListener(&#39;click&#39;,function(){
   var htmlFragment=&#39;<li>我是新增的li</li>&#39;;
   var addLi=document.createElement(&#39;li&#39;);
   addLi.innerHTML=htmlFragment;
   outUl.appendChild(addLi);
  },false);
  outUl.addEventListener(&#39;click&#39;,function(e){
   e=e || window.event;//兼容ie
   alert(e.target.innerHTML);
  }, false);
 </script>
</body>
</html>

運行效果:

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

相關文章:

Ajax 透過城市名稱取得資料

MVC遇上bootstrap後的ajax表單驗證

AJAX請求佇列實作

以上是JS實作為動態新增的元素增加事件功能範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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