在创建jQuery回调时指定参数

时间:2011-08-22 21:10:58

标签: javascript jquery callback

我正在编写一个jQuery插件,我正在尝试设置一个带有一些参数的回调。 jQuery如何确定将哪些参数发送到回调函数?

在插件中:

if (callback) {
    callback.call(var1, var2, var3);
}

书面回调:

$("#div").myplugin({callback: myfunction});
myfunction(biz,bar,bim) {
    alert("I love " + biz + " and " + bar + " and " + bim);
}

biz设置为var2,bar设置为var3,bim未定义。

2 个答案:

答案 0 :(得分:4)

call函数的第一个参数是特殊的:

fun.call(thisArg[, arg1[, arg2[, ...]]])

其中thisArg

  

this的调用提供fun的值。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call

因此,如果您传递thisArg的值:

,它会起作用
callback.call(this, var1, var2, var3);

或者更简单地说,如果您在回调中不需要call,则根本不要使用this

callback(var1, var2, var3);

答案 1 :(得分:1)

我相信你会在post中找到答案。

基本上有几种方法可以实现您想要的目标。如果你向下看帖子到最后一个例子,你有一个args.push(arguments[i]);行,可以使用申请调用的唯一两个参数将几个参数传递给函数。

如上所述,call方法类似,你必须将所有函数参数放在call方法的第二个参数中。