javascript - 为何 jQuery 中的 queue() 需要 dequeue() 来让后续代码执行?
迷茫
迷茫 2017-04-10 18:04:14
0
0
272
<!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 学習者の迅速な成長を支援します!