2
我目前一個用戶定義的類中創建一個對話框:訪問對話框中的回調方法與代理
$("<div>").dialog(buttons: {
'one': function() {
$(this).dialog('close').dialog('destroy');
}
});
以上工作正常,但是,this
不再是指類的實例在上面的功能。我可以解決這個問題有$.proxy
:
...buttons: {
'one': $.proxy(function() {
this.doWork();
}, this)
然後,我可以調用類的方法是點擊對話框按鈕時。
但是,我仍然需要在對話框元素本身上調用.dialog('close').dialog('destroy')
。在重新定義this
和$.proxy
之後,我怎樣才能訪問按鈕回調中的那個元素? e.target
指的是按鈕本身。
我也意識到我可以做這樣的事情:
var obj = this;
...buttons: {
obj.doWork();
,但我在尋找周圍的一種方式。
如果想獲得這兩個對象,你會受益是使用'proxy'改變背景 – charlietfl
'$(e.target).closest的( '.ui-dialog-buttonpane')。prev()'會給你主元素 – charlietfl
http://jsbin.com/uwidah/1/edit'this'指向初始元素,怎麼了? –