我正在编写一个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未定义。
答案 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方法的第二个参数中。