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 回答