2016-03-05 89 views
1

我有這樣的JavaScript代碼:類不監聽事件

$('.get_summary').click(function(ev){ 
    alert("get_summary"); 
}); 

與該類HTML的按鈕在JavaScript動態創建。 用螢火蟲我可以看到按鈕得到了類「get_summary」。 但是,當我點擊按鈕時沒有任何反應。控制檯中的任何錯誤都不會寫入。

查看「事件」 - 在chrome中的面板我看到該按鈕實際上沒有收聽任何事件。爲什麼? 我在類中有一個函數綁定的文件中放置了一個警告。警報顯示出來。我真的不知道我應該在什麼地方去理解爲什麼班級不聽這個功能。

+0

你能張貼genrates的HTML代碼? – zer00ne

回答

5

當您撥打$('.get_summary')時,它僅適用於呼叫時存在的元素。如果您稍後創建按鈕,他們將不會聽該事件。

你可以做的是把父的事件偵聽器:

$('.parent').on('click', '.get_summary', function(ev){ 
    alert("get_summary"); 
}); 
4

動態生成元素需要event delegation。嘗試如下。

$(document).on('click', '.get_summary', function(ev){ 
    alert("get_summary"); 
});