javascript - 为何 jQuery 中的 queue() 需要 dequeue() 来让后续代码执行?
迷茫
迷茫 2017-04-10 18:04:14
0
0
271
<!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() 队列为空时出现类似卡壳的现象吗?还请各位多多指点,谢谢~

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!