当我拥有
$('#div').click(function(someVar){//do something with soneVar});
但我想要一个有名字的回调函数,我是否正确地放置了传递的someVar
?
$('#div').click(someFunction(someVar));
function someFunction(someVar){}
当我拥有
$('#div').click(function(someVar){//do something with soneVar});
但我想要一个有名字的回调函数,我是否正确地放置了传递的someVar
?
$('#div').click(someFunction(someVar));
function someFunction(someVar){}
你的两个例子都是错误的。
你的第一个例子创建了一个回调方法的参数,名为someVar
;它将成为jQuery传递给处理程序方法的event
对象。
第二个例子立即调用该方法,然后将其结果作为事件处理程序传递给click
方法。
你需要传递一个函数表达式,该表达式使用闭包从外部作用域传递参数来调用你的函数:
$('#div').click(function() { someFunction(someVar); });
click
回调函数将被传递一个 jQuery 事件对象,而不是 someVar
。$('#div').click(function(ev) {
someFunction(someVar);
}
function someFunction(someVar) {
...
}
或者,执行以下操作:
$('#div').click({someVar: someVar}, someFunction);
function someFunction(ev) {
// your var is now in ev.data.someVar
}