2017-11-10 30 views
0

以下代碼使用onclick偵聽器創建並刪除按鈕。當removeChild(el)被調用時,el.onclick被移除了嗎?

從DOM中刪除該元素後,onclick偵聽器是否會持續存在?

let el = document.createElement('button') 
 
el.innerHTML = "Test Button" 
 
el.onclick = function(){ 
 
    alert('A Click Happened') 
 
} 
 

 
document.body.appendChild(el) 
 
document.body.removeChild(el)

獎金:是同一真正的el.addEventListener('click',() => { alert('clicked') })

+0

邏輯上:元素被銷燬後,附加到元素的偵聽器如何保留? – met4000

回答

1

不,它不會持續,因爲您正在使用onClick()屬性刪除元素。 addEventListener()也是如此。

我覺得我正在爲你回答一個測試問題,但我希望它有幫助。 :)

+0

DOM元素是否在DOM中,處理程序是否存在並無關緊要。這是關於代碼中是否存在對元素的引用。 – Wazner

+0

他正在定義元素內的函數。因此刪除該元素會刪除該功能。它沒有理由持續下去,因爲它只針對引用元素。 – Mirakolous

+0

刪除元素與垃圾收集元素不同。 – Wazner

相關問題