我的JQuery Widget有一個非常煩人的範圍問題。基本上我需要訪問我的地圖/對象options
中的小部件實例(this)。在嵌套地圖/對象中使用存儲實例
可以做到這一點嗎?任何建議如何我可以實現這一目標?
$.widget("my.myWidget", {
// Below 'this.defCallback' will be undefined
// How can I store 'this' (the widget instance) in a variable??
options: {
callback: this.defCallback // allow user to overwrite/provide custom callback
},
....
defCallback: function() {
console.log('defCallback');
}
});
如果我有一個嵌套函數,我知道我可以很容易地解決這個問題,但我有一個嵌套的對象/地圖,刁難。
function foo {
var _this = this;
...
var bar = function() {
// easily access this
_this.defCallback();
...
}
}
用法:
$('<div></div>')
.myWidget(); // use defCallback
$('<div></div>')
.myWidget({
callback: function() {
...
}
}); // use custom callback
編輯:如何回調函數是 '必然',並呼籲:
_create: function() {
this.element.click(this.options.callback);
}
。點擊(value.callback(_this)
你還可以顯示調用'callback'函數的代碼嗎? – Tomalak