我很驚訝,我無法找到明確的答案。因此,在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