将变量传递给回调方法
Pass variable to callback method
这个问题与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')});
});
在if (typeof ayb.dialogErrorElem === 'undefined') {
单击 two
button
时 ayb.dialogErrorElem
不是 undefined
我认为这不是最好的方法,但是,传递的参数可用于 open
回调。
下方的浓缩脚本突出概念,完整脚本位于 https://jsbin.com/segoxewape/edit?html,output。
如果有更好的方法使回调中的参数可用(我确信有),请发表评论。
ayb.dialogError=function(t,e) {
getEm=function(){return {e:e,t:t};}
var v={e:e,t:t}; //Won't work
if (typeof this.dialog === 'undefined') {
this.dialog=$('<div/>', {})
.dialog({
open: function(event, ui){
console.log('Wrong values in dialog.open!',t,e,v.t,v.e);
var o=getEm();
console.log('Right values!',o);
}
});
};
this.dialog.dialog('open');
}
这个问题与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')});
});
在if (typeof ayb.dialogErrorElem === 'undefined') {
two
button
时 ayb.dialogErrorElem
不是 undefined
我认为这不是最好的方法,但是,传递的参数可用于 open
回调。
下方的浓缩脚本突出概念,完整脚本位于 https://jsbin.com/segoxewape/edit?html,output。
如果有更好的方法使回调中的参数可用(我确信有),请发表评论。
ayb.dialogError=function(t,e) {
getEm=function(){return {e:e,t:t};}
var v={e:e,t:t}; //Won't work
if (typeof this.dialog === 'undefined') {
this.dialog=$('<div/>', {})
.dialog({
open: function(event, ui){
console.log('Wrong values in dialog.open!',t,e,v.t,v.e);
var o=getEm();
console.log('Right values!',o);
}
});
};
this.dialog.dialog('open');
}