5
我有什麼似乎是一個非常棘手的情況。我想將對象的實例傳遞給由同一個對象實例創建的DOM元素的事件偵聽器(如果有意義的話)。如何將JavaScript類實例傳遞給DOM Event Listener?
function Object(callback){
this.callback = callback;
this.node = document.createElement('div');
this.send = function(){
document.getElementById('list').appendChild(this.node);
}
this.node.addEventListener('click',function(){/*this.callback() of Object instance needs to go here*/},true);
}
我知道,使用callback()
將事件偵聽器內工作,但是那不是我所需要的,因爲我將使用從沒有從結構通過稍後的實例變量。
我該如何解決這個問題?
一個問題,確實ELEM得到的定義只或再次評估時,事件發生?如果不是事件發生時有什麼辦法做到這一點? – livemac 2010-11-08 04:20:02
只有在評估外部函數時纔會評估它。 elem被存儲以在回調被觸發時使用,但它總是指向相同的實例;如果在此期間更改實例,elem將反映更改(只有一個實例,它不會被複制,elem只是成爲另一個參考)。我看不到爲什麼當事件發生時你需要分配再次運行的原因。 – 2010-11-08 04:31:51
這就是我所需要的!非常感謝你 – livemac 2010-11-08 05:06:34