Jquery FadeoutがこのSetIntervalループ内で機能しないのはなぜですか?

StackOverflow https://stackoverflow.com/questions/1793122

  •  22-09-2019
  •  | 
  •  

質問

数秒ごとにランダムなアイテムをDIVにロードしようとしています。各負荷の間に素敵なフェードアウト/フェデイン遷移があります。これがコードです:

<html>
  <body>
    <div id="item"></div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
      // Load a random item
      var item = $('#item');
      function load_item() {
        item.fadeOut(5000, function() {
          item.load('http://dynamic.xkcd.com/comic/random/ #middleContent img', null, function() {
            item.fadeIn(5000);
          });
        });
      };

      // Load initial featured item
      load_item();

      // Schedule repeated loading
      setInterval(load_item, 15000);
    </script>
  </body>
</html>

これは初めて正常に機能しますが、その後のLoad_Itemへの呼び出しでは、Fadeout()が動作を停止しているようです。実際には#item Divをフェードアウトするわけではありませんが、5000の遅延を無視して、すぐにコールバック関数にジャンプします。

私は何が間違っているのですか?

役に立ちましたか?

解決

setInterval("load_item()",15000)

引用符を付けて面白く見えることはわかっていますが、うまくいきます。

もう1つのオプションは言うことです:

load_item = function(){...etc...};
setInterval(loadItem,1500)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top