我很惊讶,我无法找到明确的答案。因此,在jQuery中,你可以这样做:jQuery如何具有异步功能?
$(someElements).fadeOut(1000);
$(someElements).remove();
其中,将开始淡出动画,但它完成在持续1秒执行前,该元素从DOM中移除。但是这怎么可能?我一直在阅读JavaScript是单线程的(另请参阅:Is JavaScript guaranteed to be single-threaded?)。我知道我可以做两种:
$(someElements).fadeOut(1000).promise().done(function() {
$(someElements).remove();
});
甚至更好:
$(someElements).fadeOut(1000, function() {
$(this).remove();
});
什么我不明白是怎么的JavaScript运行在一个“单线程”但我能够使用这些jQuery的函数异步执行,并且可以同时在不同的地方看到DOM变化。它是如何工作的? 这个问题不是:“我如何解决这个问题”。
简短的回答:CSS动画或定时器。 – 2012-03-22 23:14:27
我认为是因为jQuery使用动画队列,它在文档中的某处.. – gpasci 2012-03-22 23:14:55