我在想是可以将变量传递给函数,该函数在单击按钮时执行,函数由变量赋予。
此外,函数的参数可能不止一个,因此我将它们分隔为,
。
有没有办法可以使用任何jQuery插件或函数将参数放入函数中。请帮帮我,因为我很困惑!这是我目前的jQuery代码:
function Func (a,b){
alert(a+' | '+b);
}
var Parameters = 'cool,123';
var Function = Func;
$('button').click(Function);
提前致谢
答案 0 :(得分:3)
您可以使用function.apply()
。将参数列表作为数组传递,如果您愿意,甚至可以设置范围:
function myFunc(a,b){
alert(a+", "+b);
}
var args = ["one", "two"];
var func = myFunc;
$('button').click(function(){
func.apply(this, args);
});
答案 1 :(得分:2)
这就是你要追求的吗?
function Func (a,b){
alert(a+' | '+b);
}
var Parameters = 'cool,123';
$('button').click(function() {
Func.apply(this, Parameters.split(","));
});
演示:http://jsfiddle.net/6nJx7/14/
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply
答案 2 :(得分:1)
您可以将参数作为数组传递..
function Func (a){
alert(a[0]+' | '+a[1]);
}
var Parameters = new Array(0,1);
var Function = Func;
$('button').click(Function(Parameters));
答案 3 :(得分:1)
这是另一种方法,我自己更喜欢这个,因为它有点自我记录。选项列表中的每个“参数”都有一个名称。
这是JavaScript库中用于模块选项的常见设计模式。
function Func (c){
alert(c.a+' | '+c.b);
}
var Parameters = { a : "cool", b: 123 };
var Function = Func;
$('button').click(Parameters );