2011-04-18 88 views
0

你好我如何编辑我的下面的代码来自动重新加载指定div的内容?对我的jQuery代码的小修改

我的代码下面重新载入一个名为form.php的文件,我想用div替换。

<style> 
    .loading { 
     height:24px; 
     background: url('http://b.static.ak.fbcdn.net/rsrc.php/v1/yb/r/GsNJNwuI-UM.gif') 50% 50% no-repeat; 
     } 
</style> 

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js'></script> 
<script language='JavaScript'> 
setInterval('SANAjax();', 10000); ///////// 10 seconds 

$(function() 
{ 
    SANAjax = function() 
    {  
     $('#reservationdetails') 
      .empty() 
      .addClass('loading') 
      .load('form.php', function() 
      { 
       $('#reservationdetails').removeClass('loading') 
      }); 

    } 
}); 
</script> 

谢谢!

+0

这篇文章的标题非常糟糕。它确实比“帮我”或“修复我的代码”更好,特别是因为我们已经可以从标签中看到它的jQuery。你应该考虑编辑你的问题来修正题目。 – Domenic 2011-04-18 02:32:03

回答

4

重新排序代码:

$(function() { 
    var SANAjax = function(){ 
     $('#reservationdetails').empty().addClass('loading') 
      .load('form.php', function() { 
      $(this).removeClass('loading') 
      }); 
    } 
    setInterval(SANAjax, 10000); 
}); 

我认为#reservationdetails是要加载

的性反应的股利没有必要为一个字符串传递给setInterval。始终将功能参考传递给它(与setTimeout相同)。

+0

+1从不将字符串传递给'setInterval'。 – Domenic 2011-04-18 02:32:52

+0

谢谢!我可以重新加载一个div的内容而不需要加载文件吗?这是因为在该div中有一个脚本可以获得一些结果并创建一个新的php文件,这不是一个选项。 – EnexoOnoma 2011-04-18 02:35:01

+0

嗨菲利克斯,我如何加载身体负载的网页,并继续10000间隔?因为首先加载它需要一些时间。 – EnexoOnoma 2011-04-18 03:32:20

2

Felix Kling的回答是正确的。

另外值得注意的是:以这种方式使用setInterval是非常不好的做法,因为您不确定.load是否会在您指定的10秒内返回。 (例如,考虑移动设备。)即使它在9秒内返回,也只有一秒钟才会发出下一个请求。最好在回调中做一个setTimeout,像这样:

$(function() { 
    function loadReservationDetails() { 
     $('#reservationdetails') 
      .empty() 
      .addClass('loading') 
      .load('form.php', function() { 
       $(this).removeClass('loading'); 
       setTimeout(loadReservationDetails, 10000); 
     }); 
    } 

    loadReservationDetails(); 
}); 
+0

+1好点.. – 2011-04-18 02:33:00

+0

嗨Domenic,我怎样才能加载身体负载的网页,并继续10000间隔?因为首先加载它需要一些时间。 – EnexoOnoma 2011-04-18 03:32:41

+0

我的回答是...你读过了吗? – Domenic 2011-04-18 06:16:10