2016-01-01 24 views
1

我通過ajax(純JavaScript)內「測試」動態加載div的內容。現在,當我點擊索引6的子div時,我想要一個警告框出現,但事實並非如此。addEventListener不工作的Ajax生成的內容(純JavaScript)

如何使點擊事件起作用?如果Ajax請求已完成,則調用Get。它工作正常如果我刪除eventlistener,只是添加一個alertbox,顯示適當的內容。使用eventlistener它完全無法將處理程序綁定到目標div上。

function gets(){ 
    document.getElementById("test").children[6].addEventListener("click", function() { 
     alert(document.getElementById("test").children[6]) 
    }) 
} 
+0

你在'alert'和'})'末尾缺少一個分號。 – Cyval

+1

@Cyval代碼是有效的....好吧我沒有緩存我的元素,但很好哦 – Asperger

+2

這看起來像一個代表團的問題,請按照[鏈接](http://codepen.io/32bitkid/post/understanding-delegated- JavaScript的事件)。 –

回答

0

問題可以固定事件委託

是如何工作的一個例子:

function gets() { 
    document.getElementById("test").addEventListener("click", function(event) { 
    console.log(event.currentTarget.children[0]) 

    }) 

currentTarget當前是指我們正在積極點擊元素和目標是父。

+0

如果他在AJAX返回後添加事件偵聽器,則不需要使用委派。 – Barmar

+0

即使在ajax後它不起作用 – Asperger

+0

這就是我不明白 - 爲什麼它不工作?如果您試圖爲尚不存在的元素綁定處理程序,則只需要委派。 – Barmar