如何給後添加的標籤添加事件

如何給後添加的標籤添加事件

1、總結

一句話總結:

給新添加的元素hidden_panel類添加點擊事件:$("body").on("click", ".hidden_panel", function (e) { 執行的代碼 });
<script>
  $(function () {
      $("body").on("click", ".hidden_panel", function (e) {
          $(this).children(".panel-body").toggle();
          $(this).children(".panel-footer").toggle();
          $(this).find(".panel-heading_symbol_left").toggle();
          $(this).find(".panel-heading_symbol_down").toggle();
      });
  });
</script>

 

 

 

2、給動態添加的標籤添加事件的問題

轉自或參考:給動態添加的標籤添加事件的問題 - tangmin的博客 - CSDN博客
https://blog.csdn.net/tangminfx/article/details/82019340html

 

 

 1 測試代碼:
 2 
 3 <!DOCTYPE html>
 4 <html>
 5   <head>
 6     <meta charset="UTF-8">
 7     <title>www.jb51.net - JS實現爲動態建立的元素添加事件</title>
 8     <script src="js/jquery-1.9.1.min.js"></script>
 9   </head>
10   <body>
11     <button id="btn">添加事件</button>
12     <div id="panel"></div>
13     <script>
14 
15       //jquery部分實現
16       $("#btn").click(function(){
17         var arr= [];
18         for(var i=0;i<10;i++){
19           arr.push("<p id='nep'>"+i+"</p>");
20         }
21         $("#panel").html(function(){
22           return arr.join("<br/>");
23         });
24       });
25       //爲動態建立的html標籤元素添加事件
26       $("#panel").on("click",function(){
27         var that=$(this);//獲取當前點擊的this對象
28         alert(that.text())
29         console.log(that.text());
30       });
31     </script>
32   </body>
33 </html>

 

 

 

 

3、JQuery實現動態添加的標籤元素的點擊事件

轉自或參考:JQuery實現動態添加的標籤元素的點擊事件
https://blog.csdn.net/doctor_ly/article/details/80253677jquery

 

這裏所說的動態添加的元素的意思是:用js添加的標籤元素bootstrap

 

想對一些數據實現分頁,就本身寫一個分頁功能。用的是bootstrap的分頁,在頁面獲取數據列表後,計算出須要分多少頁展現,而後用js生成多個頁碼(是叫頁碼嗎?)。生成後,點擊某個頁碼跳到相應的頁,這時確定要有點擊事件。問題來了,沒有點擊事件。(最初一臉黑人問號)測試

 

 

 

 

 

 

 

這是由於在註冊click後,再用js生成元素標籤的。因此後添加的元素標籤沒有註冊click事件this

 

 

 


網上還有一種廣泛的解決方案:spa

用on去註冊事件,這種要有一個父級標籤,而且這個父級標籤不是用js生成的。.net

 

 

這樣雖然元素標籤在事件的註冊以後,可是點擊事件是註冊在父級標籤上的,咱們仍是能夠觸發對應的事件。code

相關文章
相關標籤/搜索