Javascript 将变量传递给回调函数的正确方法

Javascript 将变量传递给回调函数的正确方法,javascript,jquery,callback,anonymous-function,Javascript,Jquery,Callback,Anonymous Function,当我有 $('#div').click(function(someVar){//do something with soneVar}); 但是我想要一个命名的回调函数,我是否正确地使用传递的someVar $('#div').click(someFunction(someVar)); function someFunction(someVar){} 你的两个例子都错了 第一个示例为回调方法创建了一个名为someVar的参数;它将成为jQuery传递给handler方法的事件对象 第二个示例立

当我有

$('#div').click(function(someVar){//do something with soneVar});
但是我想要一个命名的回调函数,我是否正确地使用传递的
someVar

$('#div').click(someFunction(someVar));
function someFunction(someVar){}

你的两个例子都错了

第一个示例为回调方法创建了一个名为
someVar
的参数;它将成为jQuery传递给handler方法的
事件
对象

第二个示例立即调用该方法,然后将其结果作为事件处理程序传递给
click
方法

您需要传递一个函数表达式,该表达式使用外部作用域中的参数调用您的函数(使用闭包):


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
}

研究将参数作为事件数据传递给click事件(或使用jQuery的任何事件):

$('#div').click({someVar: someVar}, someFunction);

function someFunction(ev) {
    // your var is now in ev.data.someVar
}