当我有传递变量的回调函数
$('#div').click(function(someVar){//do something with soneVar});
但我想有一个名为回调函数以正确的方式,我是palcing的正确传递someVar
?
$('#div').click(someFunction(someVar));
function someFunction(someVar){}
当我有传递变量的回调函数
$('#div').click(function(someVar){//do something with soneVar});
但我想有一个名为回调函数以正确的方式,我是palcing的正确传递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
}
查找到传递的参数作为事件数据的单击事件(或使用jQuery无论如何):http://api.jquery.com/click/