-1
我想覆蓋附加到事件偵聽器的函數,但是當事件被觸發時,仍舊調用舊函數。重寫函數表達式事件偵聽器不工作
var element;
var newHandler =() => {
if((element = this.getElementsByClassName('someClass')[0]) != null){
this.removeEventListener('DOMNodeInserted', handler)
element.insertAdjacentHTML('beforeend', "<a>Hello</a>");
}
}
var handler =() => {
handler = newHandler;
var scriptTag = document.createElement('script');
scriptTag.src = "someScript.js";
document.head.appendChild(scriptTag);
}
document.addEventListener('DOMNodeInserted', handler);
任何形式的幫助真的很感激。 謝謝!
是什麼讓你認爲'handler = newHandler'會改變傳遞給'addEventListener'的事件偵聽器? – zzzzBov
感謝您的評論。我認爲「handler = newHandler」應該完成這項工作。 –
也許我不清楚,我知道你*認爲*那會起作用。我在問你爲什麼會這麼做?無論如何,它絕對不行(正如你已經看到的),你需要了解更多關於JS事件API的信息。 – zzzzBov