最好通过代码示例来解释,所以有人可以解释为什么(在技术术语中)传递给test的匿名函数在jQuery hide事件之后不会被调用吗?
更新:对于这个例子来说,这并不重要,但是为了清楚起见,我们可以说测试函数在全局范围内,这是一个锚元素。
test(this, function() {
alert('Called by anonymous function!');
});
function test(object, callback) {
$(object).hide('slow', callback);
}
更改:
$(object).hide('slow', callback);
要:
$(object).hide('slow', callback());
的工作原理。这是因为回调不是当前上下文或全局窗口对象中的命名函数吗?
答案 0 :(得分:1)
您的代码看起来应该更像
test(this, function() {...});
您没有在代码中调用匿名函数,但我不确定该语法实际上是什么
查看一个工作示例http://jsfiddle.net/L4NxD/2
的小提琴编辑,对小提琴进行了更多编辑,以更好地复制原始代码。使用http://jsfiddle.net/L4NxD/1和http://jsfiddle.net/L4NxD/获取早期版本。
答案 1 :(得分:0)
这是正确的方法。
隐藏动画后调用remove将删除对象并导致动画回调未被调用。
它在jsfiddle.net/6dFm6/1中工作的原因是因为回调是在运行时执行的,并且在回调事件期间传递并调用了值。
请参阅这些文章,了解'functionName()'作为回调返回的内容的不同程度。调用返回“undefined”,但执行仍然在正确的时间执行。
When to use () after a callback function name?
In JavaScript, does it make a difference if I call a function with parentheses?
Callback function - use of parentheses
do I need parenthesis when using a named function as an jquery ajax success callback