ily*_*lyo 4 javascript jquery callback anonymous-function
当我有
$('#div').click(function(someVar){//do something with soneVar});
Run Code Online (Sandbox Code Playgroud)
但是我希望有一个命名的回调函数,我someVar正确地通过了吗?
$('#div').click(someFunction(someVar));
function someFunction(someVar){}
Run Code Online (Sandbox Code Playgroud)
你的两个例子都错了.
您的第一个示例为名为的回调方法创建一个参数someVar ; 它将成为eventjQuery传递给处理程序方法的对象.
第二个示例立即调用该方法,然后将其结果click作为事件处理程序传递给该方法.
您需要传递一个函数表达式,该函数表达式使用外部作用域中的参数调用您的函数(使用闭包):
$('#div').click(function() { someFunction(someVar); });
Run Code Online (Sandbox Code Playgroud)
该click回调函数将被传递一个jQuery事件对象,而不是someVar.
你必须在回调函数中自己调用你的函数.
$('#div').click(function(ev) {
someFunction(someVar);
}
function someFunction(someVar) {
...
}
Run Code Online (Sandbox Code Playgroud)
或者,做:
$('#div').click({someVar: someVar}, someFunction);
function someFunction(ev) {
// your var is now in ev.data.someVar
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10504 次 |
| 最近记录: |