Jquery ui jqueryui、JavaScript、param和(可能)闭包
下面是我的JavaScript示例:Jquery ui jqueryui、JavaScript、param和(可能)闭包,jquery-ui,closures,Jquery Ui,Closures,下面是我的JavaScript示例: function createButtons(idDialog, tab, fn, param) { var btns = new Array(); for (var i = 0; i < tab.length; i++) { btns.push( { text: (tab[i]>0 ? '+':'')+tab[i], click: function(a) { c
function createButtons(idDialog, tab, fn, param) {
var btns = new Array();
for (var i = 0; i < tab.length; i++) {
btns.push( {
text: (tab[i]>0 ? '+':'')+tab[i],
click: function(a) {
console.log(fn);
console.log(param);
fn(param);
$(this).dialog("close");
}
});
};
btns.push( {
text: "Close",
click: function() {
$(this).dialog("close");
}
});
$(idDialog).dialog('option', 'buttons', btns);
}
函数创建按钮(idDialog,tab,fn,param){
var btns=新数组();
对于(变量i=0;i0?'+':'')+(制表符[i],
点击:功能(a){
控制台日志(fn);
控制台日志(param);
fn(param);
$(此).dialog(“关闭”);
}
});
};
推送({
文本:“关闭”,
单击:函数(){
$(此).dialog(“关闭”);
}
});
$(idDialog).dialog('选项','按钮',基站);
}
参数:fn
是一个在我们单击按钮时应调用的函数,param
是一个应传递给函数的参数
当我使用此代码时,console.log(fn)
表示undefined
,console.log(param)
表示undefined
。它不记得参数
我该怎么办?我已经请JoshNaro回答,但他没有回答,所以他给出的解决方案非常有效:
function createButtons(idDialog, tab, fn, param) {
var btns = new Array();
for (var i = 0; i < tab.length; i++) {
btns.push( {
text: (tab[i]>0 ? '+':'')+tab[i],
click: function(a) {
console.log(fn);
console.log(param);
fn(param);
$(this).dialog("close");
}
});
};
btns.push( {
text: "Close",
click: function() {
$(this).dialog("close");
}
});
$(idDialog).dialog('option', 'buttons', btns);
}
createButtons(
"#Hello",
['Save', 'Load'],
function(parameter) {
alert(parameter);
},
'World'
);
函数创建按钮(idDialog,tab,fn,param){
var btns=新数组();
对于(变量i=0;i0?'+':'')+(制表符[i],
点击:功能(a){
控制台日志(fn);
控制台日志(param);
fn(param);
$(此).dialog(“关闭”);
}
});
};
推送({
文本:“关闭”,
单击:函数(){
$(此).dialog(“关闭”);
}
});
$(idDialog).dialog('选项','按钮',基站);
}
创建按钮(
“#你好”,
[“保存”、“加载”],
函数(参数){
警报(参数);
},
“世界”
);
也许JSFIDLE可以帮助我们帮助您@JoshNaro包括jQueryUICSS似乎让这把小提琴工作起来了:。OP不确定为什么在控制台中看到未定义。我不确定OP对createButtons的调用是什么样的,或者HTML是什么样的。这就是为什么我为《凤凰社》提供小提琴的原因。乔希,它很管用。我的情妇很坏。我可以请你用小提琴作为密码回答吗?这样我就可以检查你的答案是否有效了?非常感谢你!