我正在尝试在 JQuery UI (v 1.9 m8) 中编写一个自定义小部件:http ://pastebin.com/zua4HgjR 从我的网站我这样称呼它:var D = new $.ui.mail({}); 基本上它有效。
是否有更好的方法在单击按钮时调用 doSend?
问题是如何从函数处理程序访问对象实例?"this" 返回整个 html 窗口。尝试使用 $.proxy 不起作用:单击:$.proxy(this.doSend, this);
谢谢指教!
我正在尝试在 JQuery UI (v 1.9 m8) 中编写一个自定义小部件:http ://pastebin.com/zua4HgjR 从我的网站我这样称呼它:var D = new $.ui.mail({}); 基本上它有效。
是否有更好的方法在单击按钮时调用 doSend?
问题是如何从函数处理程序访问对象实例?"this" 返回整个 html 窗口。尝试使用 $.proxy 不起作用:单击:$.proxy(this.doSend, this);
谢谢指教!
不幸的是,如果您使用options
成员设置按钮,您将无法引用调用所需的元素doSend
。我能够想出的一种解决方法是_create
在您有适当参考的方法中分配处理程序。
_create: function() {
this.options.buttons = [
{
text: 'Send',
click: function(self) {
return function() {
$(self.element).mail('doSend');
};
}(this)
},
{
text: 'Cancel',
click: function() { $(this).remove() }
}
];
this._super(arguments);
}
这个周末我终于完成了我的插件:http ://agrimarket-blacksea.com/jsc/jquery-mail.js
我决定以经典的方式调用“类函数”:$(this).mail('doSend')
,直到我找到更好的东西。
谢谢!