0
  //when document loads
   $(document).ready(function() {

    //navigation item is clicked
     $('.nav_item').click(function() {

    //get the clicked nav items id
    var nav_item = $(this).attr("id");
    var location_to_load = nav_item + '.html';

   //load the loading html then the page
   $('#sliding_content_container').load('loading.html', null, showResponse);

   //load the page
   function showResponse(){
    $('#sliding_content_container').delay(900).load(location_to_load);
   };

   //dont refresh
   return false;
   }); 
   });

ねえ、私はJqueryを学んでいて、なぜ「読み込みページ」を呼び出してから宛先を遅らせて呼び出すことができないのか疑問に思いました。たとえば、関数の.delayの追加やチェーンなど、すべてが機能しないようです。

どんな助けでも素晴らしいでしょう、私はjqueryに古き良き亀裂を与えています。

ありがとう

4

3 に答える 3

2

このdelayメソッドはアニメーションに使用されます。
アニメーションキューに遅延アイテムを追加し、その後に呼び出されるアニメーションを遅延させます。
通常の方法には影響しません。

代わりに、次のようにsetTimeout関数を呼び出す必要があります。

$('#sliding_content_container').load('loading.html', null, function() {
    setTimeout(function() { 
        $('#sliding_content_container').load(location_to_load);
    }, 900);
});
于 2010-10-17T17:53:42.750 に答える
0

動作を遅らせるには、次の呼び出しでキューを使用してロードする必要がありますshowResponse()

function showResponse(){
    $('#sliding_content_container')
      .delay(900)
      .queue(
        function()
        {
          var $this = $(this);
          $this
            .load(
              location_to_load,
              false,
              function()
              {
                $this.dequeue();
              }
            );
        }
      );
};

必要に応じて、「fx」以外のキューを使用することもできます。これは、このキューが通常アニメーションに使用されるというバグが発生した場合に備えてです。

于 2010-10-17T18:10:48.770 に答える
-1

.delay();で遅延させることはできません。AJAXはデフォルトで非同期です(テクノロジーの略語が何を意味するかを確認するのに役立つ場合があります)。jQueryを使用してからかなりの時間がかかりますが、覚えている限り、.ajaxリクエストが適しているはずです。 http://api.jquery.com/jQuery.ajax/

于 2010-10-17T19:13:01.610 に答える