1
我想實現揭示模塊模式。我需要爲其中一個元素分配一個事件處理程序,這個事件處理程序是我在原型中定義的一個函數,但是我得到了this.trigger不是函數錯誤。如何在揭示原型模式中分配事件?
這裏是我做了什麼:
//constructor
var MyClass = function (settings) {
this.someElement=$(settings.elementID);
}
//prototype
MyClass.prototype = function() {
var init = function() {
this.someElement.change(this.handler);
},
handler = function() {
this.someElement.hide();
};
return {
init : init,
handler : handler
};
}();
以下是我把它叫做:
var myClass = new MyClass();
myClass.init();
我看不到'this.trigger'從哪裏來。 – hugomg 2011-12-30 23:48:45
我正在嘗試在handler中使用this.someElement。這是關閉問題嗎? – 2011-12-31 12:35:06
我看到的一個問題是,在MyClass.prototype中,處理程序沒有被正確地限定範圍。沒有「var」它是全局聲明的,你可能不想要。可能不是問題,但你應該修復它。那麼你是否試圖從一個「新」實例調用處理程序?您還應該發佈調用此方法的代碼。 – thescientist 2011-12-31 12:43:39