我已經定義在JavaScript中的一類具有一個方法jQuery的事件時,在JavaScript類重寫:「這個」關鍵字處理
function MyClass(text) {
this.text = text;
}
MyClass.prototype.showText = function() {
alert(this.text);
}
然後,我定義充當一個click事件處理程序的方法,使用jQuery:
function MyClass(text) {
this.text = text;
$('#myButton').click(this.button_click);
}
MyClass.prototype.showText = function() {
alert(this.text);
};
MyClass.prototype.button_click = function() {
this.showText();
};
當我按一下按鈕,它沒有說:
對象#<HTMLInputElement>有沒有方法「showText」
這似乎是this
在jQuery的單擊事件處理程序指的HTML元素本身,它不是指的MyClass
對象的實例。
我該如何解決這種情況?可
的jsfiddle:http://jsfiddle.net/wLH8J/
你釘了它。好答案! –
優秀的Yoshi,我會給它一個去$ .proxy的東西,它看起來像是我的完美解決方案,:-) –
@ antur123不客氣!代理可能是關於瀏覽器兼容性的最安全的選擇。 – Yoshi