2017-02-15 91 views
0

我有一個對象的事件偵聽器,當對象發生變化時觸發一個函數。Javascript事件偵聽器在發射後會被破壞(默認情況下)嗎?

這是代碼:

window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1()); 

這完美的作品第一次的對象改變但是,所有連續的變化不會觸發事件偵聽器。

這是JavaScript的正常行爲?我能做些什麼來糾正這個問題?

回答

2

不,每次事件偵聽器都應該被觸發。

我覺得這個錯誤是由於因爲你調用的函數,而不是把它當作一個參數:

getscriptbuttons1 // passes the function 
getscriptbuttons1() // calls the function and passes whatever it returns 

你是什麼意思? :

window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1); 
1

不,它們不會被破壞。你必須手動刪除它們。問題在於你實際上正在調用事件監聽器中的函數。您需要將其更改爲:(不包含,不要稱之爲)

window.parent.document.getElementById('campval').addEventListener("change", getscriptbuttons1); 
相關問題