使用jQuery中的单个变量添加函数参数

时间:2011-05-17 10:13:47

标签: javascript jquery html function html5

我在想是可以将变量传递给函数,该函数在单击按钮时执行,函数由变量赋予。

此外,函数的参数可能不止一个,因此我将它们分隔为,

有没有办法可以使用任何jQuery插件或函数将参数放入函数中。请帮帮我,因为我很困惑!这是我目前的jQuery代码:

function Func (a,b){
 alert(a+' | '+b);   
}
var Parameters = 'cool,123';
var Function = Func;

$('button').click(Function);

Problem demo

提前致谢

4 个答案:

答案 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 );