这个问题与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