2011-08-22 26 views
0

我正在写一个jQuery插件,并试图设置一个需要几个参数的回调函数。 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,酒吧设置为VAR3,和BIM是不确定的。

回答

4

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

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

其中thisArg

提供用于调用funthis的值。

callback.call(this, var1, var2, var3); 

,或者更简单,不要用call在所有如果你不需要this

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

所以,如果你通过了thisArg值时,它会工作在回调中:

callback(var1, var2, var3); 
1

我相信你会找到答案在这post

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

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

+0

感谢您的链接,该帖子太棒了! – stinkycheeseman