2016-10-04 245 views
0

我有一個問題,添加事件偵聽器來動態添加html元素。添加事件偵聽器來動態添加html元素

這種情況是,一些'窗體'存儲在數據庫中,並順序顯示給用戶。每次顯示新的表單時,事件處理程序都會添加到新的「表單」中,即添加到子元素。每個'表單'的html元素的id是相同的。

一切工作正常的第一種形式,但是當第二種形式被添加,即使是事件處理程序添加,他們不會觸發。

我已經嘗試過使用.click,.on .off,.addEventListener,.removeEventListener等無數的變體,但似乎無法得到此工作。

我使用的代碼是:

  //replace innerHTML    
      $("#mob_html").off();       //remove previous event listeners 
      $("#mob_html").remove();       //remove html element 
      $(form.html_str).insertAfter("#event_hdr_div"); // add new html element with form html stored in database 

      // add event handler 
      $('#'+child_id_1).click(function() { 
       if (perm_fg==true) { 
        open(); 
       } 
      }); 
      $('#'+child_id_1).click(function() { 
       if (perm_fg==true) { 
        open(); 
       } 
      }); 

任何建議非常感謝!

+0

你可以創建jsfiddle來檢查確切的問題嗎? –

+0

我並沒有完全理解這個場景,但爲什麼不添加一個類並簡單地綁定事件的監聽,一旦以on()開始。 on()的優點在於,它綁定了在其調用之後創建的動態添加的元素。 –

回答

0

與文檔對象

$(document).on('click', '.some-class', function() { 
    // ... 
}); 
0

隨着上的幫助()選擇功能,您可以綁定您的動態添加元素,但一定要使用最新版本的jQuery的,因爲它可能不是在jQuery的早期版本支持。

相關問題