<!DOCTYPE html>
<html>
<head>
<style>
p { margin:3px; width:40px; height:40px;
position:absolute; left:0px; top:30px;
background:green; display:none; }
p.newcolor { background:blue; }
</style>
<script type="text/javascript" src="jQuery/jquery-1.12.2.min.js"></
</script>
</head>
<body>
Click here...
<p></p>
<script>
$(document.body).click(function () {
$("p").show("slow");
$("p").animate({left:'+=200'},2000);
$("p").queue(function () {
$(this).addClass("newcolor");
$(this).dequeue();
});
$("p").animate({left:'-=200'},500);
$("p").queue(function () {
$(this).removeClass("newcolor");
//$(this).dequeue();
});
$("p").slideUp();
});
</script>
</body>
</html>
请问为何 jQuery 中的 queue() 需要 dequeue() 来让后续代码执行,而不是 queue() 队列完成后自动执行后续代码?
当注释 $(this).dequeue(); 后,没有执行 $("p").slideUp(); ,而是停止动画;而当恢复 $(this).dequeue(); 后, $("p").slideUp(); 又可成功执行,是当 queue() 队列为空时出现类似卡壳的现象吗?还请各位多多指点,谢谢~
业精于勤,荒于嬉;行成于思,毁于随。