将变量传递给回调函数的正确方法
当我有
$('#div').click(function(someVar){//do something with soneVar});
但我想要一个命名回调函数时,我是否正确地处理了传递的 someVar
?
$('#div').click(someFunction(someVar));
function someFunction(someVar){}
When I have
$('#div').click(function(someVar){//do something with soneVar});
but I want to have a named callback function, am I palcing the passed someVar
correctly?
$('#div').click(someFunction(someVar));
function someFunction(someVar){}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的两个例子都是错误的。
您的第一个示例为名为
someVar
的回调方法创建一个参数;它将成为 jQuery 传递给处理程序方法的event
对象。第二个示例立即调用该方法,然后将其结果作为事件处理程序传递给
click
方法。您需要传递一个函数表达式,该表达式使用来自外部作用域的参数调用您的函数(使用闭包):
Both of your examples are wrong.
Your first example creates a parameter to the callback method named
someVar
; it will become theevent
object that jQuery passes to the handler method.The second example calls the method immediately, then passes its result to the
click
method as an event handler.You you need to pass a function expression that calls your function with a parameter from the outer scope (using a closure):
click
回调函数将传递一个 jQuery Event 对象,而不是someVar
。您必须在回调函数内自己调用您的函数。
或者,执行以下操作:
The
click
callback function will be passed a jQuery Event object, notsomeVar
.You have to call your function yourself within the callback function.
Alternatively, do:
考虑将参数作为事件数据传递给 click 事件(或任何带有 jQuery 的事件): http://api. jquery.com/click/
Look into passing the arguments as event data to the click event (or any event with jQuery): http://api.jquery.com/click/