j查询链接与动画函数的回调
jQuery chaining vs. callbacks for animation functions
假设我有一些元素想要制作动画:
$('.hey').show(1000).slideUp(1000);
这和:
$('.hey').show(1000, function() {
$(this).slideUp(1000);
});
就内部发生了什么?据我所知,动画在jQuery中是异步的。所以第一个例子,show
和slideUp
应该同时触发。在第二个中,slideUp
应该只在show
结束后开火。
然而,出于某种原因,喜欢这个答案的人说他们是"相同的"。尽管(明显的)它们的工作方式不同,但它们为什么是相同的(在第一个例子中,与第二个例子不同,退货会立即发生)?
然而,出于某种原因,喜欢这个答案的人说他们是"相同的"。
你是对的,他们不是。如果多个元素与.hey
匹配,它们之间的差异特别大。但是对于您引用的代码,尽管他们采取的步骤顺序不同,但它们最终会做同样的事情。
尽管(明显的)它们的工作方式不同,但它们为什么是相同的(在第一个例子中,与第二个例子不同,退货会立即发生)?
在这两个示例中,代码立即运行并完成("返回")。
在第一个示例中,对slideUp
的调用会立即发生,但 jQuery 通过将 slideUp 动画添加到动画队列的末尾并返回来处理该调用;实际的 slideUp 发生在动画队列中到达时
在第二个示例中,对show
的调用立即发生,然后在动画完成后,对slideUp
的调用完成。
当多个元素与您的选择器匹配时,主要区别在于,在第一个示例中,有一个对 slideUp
的调用,这会将 slideUp 操作添加到您调用它的 jQuery 对象中当前元素集的动画队列中。在第二个中,对完成回调有多个调用,每个元素在完成时调用一个。
Arun P Johny 在评论中强调了另一个非常重要的区别:如果您稍后要向这些相同的元素添加另一个动画函数,在第一个例子中,它将添加到slideUp
之后的队列中,但在第二个示例中,slideUp
将在另一个动画之后。
但是对于你引用的代码,同样,当他们走不同的道路到达那里时,他们最终会做同样的事情。
- 如何将一个JavaScript函数回调为多个函数
- Meteor:异步函数回调异常:onAfterAction
- 从类方法中的 ajax post 函数回调函数更改 javascript 类属性
- jQuery动画函数回调错误
- jquery在html属性中添加函数回调,以便在其他事件中调用
- jquery getjson 函数:回调返回错误的字符串
- postMessage - 多个 postMessage 事件/函数/回调
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- 单击事件后的 JavaScript 函数回调
- 设置超时函数回调静态变量
- Jquery UI 模式匿名函数回调以打开对话框
- 函数回调、局部变量和 chrome.storage.sync.get
- Jquery Ajax 没有拾取选项参数中指定的函数回调
- 如何在 javascript 中进行函数回调
- 用函数回调封装JavaScript
- jQuery JavaScript嵌套异步函数回调
- Node.js-匿名函数回调
- 函数回调超出范围
- php代码的Javascript函数回调
- 如何使用函数回调在更改时提交表单