创建 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,bar设置为var3,bim未定义。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
call
函数的第一个参数很特殊:其中
thisArg
是https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects /Function/call
因此,如果您为
thisArg
传递一个值,它就会起作用:或者,更简单地说,如果您传递一个值,则根本不要使用
call
回调中不需要this
:The first argument of the
call
function is special:where
thisArg
ishttps://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call
So, it would work if you passed a value for
thisArg
:Or, more simply, don't use
call
at all if you don't needthis
in the callback:我相信您会在此帖子。
基本上有几种方法可以实现您想要的目标。如果您查看帖子中的最后一个示例,您会看到一个 args.push(arguments[i]); 行,它可以使用 apply 调用的唯一两个参数将多个参数传递给函数。
正如这里所说,call方法类似,你必须将所有函数参数放在call方法的第二个参数中。
I believe you'll find the answer in this post.
Basically there are several ways of achieving the goal you want. If you look down the post to the last example, you have an
args.push(arguments[i]);
line that may pass several parameters to the function using the only two arguments for the apply call.As said here, the call method is similar, you have to put all the function arguments in the second parameter of the call method.