簡體   English   中英

具有動態ID的事件綁定

[英]Event binding with dynamic ID

我有一些div,這些div是通過PHP腳本動態創建的,並通過AJAX顯示在頁面上。 這些div上具有打開模態的鏈接。 頁面首次加載時,鏈接會很好用。 當腳本更新且頁面上顯示新數據時,新數據的鏈接不起作用。 因此,我發現我需要通過.on(click)綁定事件。

這是我遇到的問題,因為它們不是要綁定的靜態ID。 這些ID是根據通過第三方API創建的JSON文件中的ID動態生成的。

    $AlertData .= "<div class='alert__view' id='eventID'>\n";
    $AlertData .= "<a href='#{$eventID}' data-toggle='modal' data-backdrop='false' data-target='#{$eventID}'><i class='fa fa-info-circle'></i></a>\n";
    $AlertData .= "</div>\n";

$ eventID是鏈接和要打開的鏈接模態的ID。 那么我該如何將動態ID綁定到通過解析JSON文件通過PHP生成的動態ID? 現在我知道的一件事是,由於鏈接使用了動態ID,因此我可以將該函數綁定到其中一個父對象。 在這種情況下,是“ eventID”,但這仍然讓我動態地生成目標ID,我不確定該如何處理,還是應該將模式包裝成新的,以便分配父ID來處理?

這是更新PHP文件以在頁面上顯示更新的數據/信息以及我認為應該添加的事件綁定的代碼段。

$.ajax({
          url: "inc/alertsTX.php",
          cache: false,
          success: function(data){
             $("#svrAlertsTX").html(data);
               $('#eventID'.on('click', function () {
                  $(#$eventID).html(data);
          }
         }
        });

綁定時使用selector

.on( events [, selector ] [, data ], handler )

像這樣

$('.alert__view').on('click', 'a', function () { ...

或者您可以綁定鞋幫(不推薦)

$('body').on('click', '.alert__view > a', function () { ...

來自文檔

提供選擇器后,事件處理程序稱為“委托”。 當事件直接發生在綁定元素上時,不調用處理程序,而僅對與選擇器匹配的后代(內部元素)進行調用。

委派事件的優勢在於,它們可以處理來自后代元素的事件,這些事件在以后的時間添加到文檔中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM