這個問題與jQueryUI的對話框沒有多大關係,還有更多關於JavaScript的問題。將回調變量傳遞給回調方法
我將一些變量傳遞給ayb.dialogError()
,並用它們來創建一個對話框。然後我傳遞不同的值,但第一個仍然使用。
下面的腳本被壓縮以突出顯示問題,完整的腳本位於https://jsbin.com/muhijodima。
在open
回調中,如何訪問傳遞給ayb.dialogError()
的變量?
$(function(){
ayb={};
ayb.dialogErrorElem=undefined;
ayb.dialogError=function(t,e) {
if (typeof ayb.dialogErrorElem === 'undefined') {
ayb.dialogErrorElem=$('<div/>').appendTo('body').dialog({
open: function(event, ui){
console.log('dialog.open',t,e);
//t=function(){return t;}
//e=function(){return e;}
},
});
console.log(ayb.dialogErrorElem);
};
ayb.dialogErrorElem.dialog('open');
}
$('#e1').click(function(){ayb.dialogError('Title1',['error1-1','error1-2'])});
$('#e2').click(function(){ayb.dialogError('Title2','error2-1')});
});
你是什麼意思「變量傳遞給ayb.dialogError()」? 't'和'e'參數?它們應該在回調中可用。 – hindmost
'',''尾隨逗號?在console.log('dialog.open',t,e)之後;'? – guest271314
@ behindmost但他們不是。在jsbin演示中,請嘗試單擊其中一個按鈕,然後單擊其中一個按鈕。第二次,'e'和't'參數仍然首次使用這些參數。 – user1032531