我想繞過我的頭爲什麼這段代碼不工作。我閱讀了DOM並添加了事件偵聽器,並且我明白事件偵聽器只能添加到DOM的對象中。從技術上講_get_elem的返回值應該是一個DOM對象,但它仍然不起作用。如果任何人有任何想法,爲什麼這不起作用或指向我可以解釋如何做到這一點的資源的方向,這將不勝感激。JavaScript對象無法識別爲addEventListener的DOM對象
window.onload = funtion()
{
// works
document.getElementByID('element_id').addEventListener('click', _fn(), false);
var exfnvar = new exfn();
// doesn't work
exfnvar.exel.addEventListener('click', _fn(), false);
// also doesn't work
exfnvar._get_elem().addEventListener('click', _fn(), false);
};
var exfn = function()
{
this.exel = document.getElementByID('element_id');
this._get_elem = function()
{
return document.getElementByID('element_id');
}
};
function _fn()
{
// do something.
};
這個。 瀏覽器將根據需要調用您的函數,這就是事件處理程序的要點。你只需要傳入參考。你正在傳遞你的處理程序的返回值,我懷疑它是未定義的,因爲沒有太多理由在事件處理程序中放置返回語句。 – 2014-11-04 19:38:27
我不敢相信這麼小的疏忽導致一切都失敗了。奇怪的是我以前沒有(),但它仍然沒有工作,一定是其他東西。謝謝你指出我的錯誤! – Ambiguities 2014-11-04 19:49:23