使用多个参数绑定回调函数

时间:2014-06-10 08:00:19

标签: javascript jquery bind

我想绑定到元素函数,它接受几个参数。怎么做对了?

例如,我有功能:

function test(arg1, arg2, arg3) {
    console.log("arg1:", arg1);
    console.log("arg2:", arg2);
    console.log("arg3:", arg3);
}

我希望将它绑定到ID为#btn的元素,但所有参数都在数组中:

var array = ['Hello', ' my', ' world!'];

我该怎么做?我会尝试这样的事情:

$("#btn").bind("click", array, test);

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

你可以这样做:

var array = ['Hello', ' my', ' world!'];

$("#btn").bind("click", function() {
  test.apply(null, array);
});

或使用$.proxy方法添加参数:

$("#btn").bind("click", $.proxy.apply($.proxy, [test, null].concat(array)));

答案 1 :(得分:1)

关闭。

$('#btn').bind("click", function() { test('Hello', 'my', 'world'); });

$('#btn').bind("click", function() { test.apply(null, array); });

答案 2 :(得分:1)

<强> jsFiddle Demo

您可以使用apply来实现这一目标。

$("#btn").bind("click", function(){ test.apply({},array)});