2012-12-16 45 views
0

我有这个jQuery代码,ajax,帮助我做一些分页。只有在分页的第一页才能重新加载页面

现在,我从一个只有一些信息打印的PHP文件抓取数据。

索引文件是这样的一个:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     function loading_show(){ 
      $('#loading').html("<img src='images/loading.gif'/>").fadeIn('fast'); 
     } 
     function loading_hide(){ 
      $('#loading').fadeOut('fast'); 
     }     
     function loadData(page){ 
      loading_show();      
      $.ajax 
      ({ 
       type: "POST", 
       url: "load_data.php", 
       data: "page="+page, 
       success: function(msg) 
       { 
        $("#container").ajaxComplete(function(event, request, settings) 
        { 
         loading_hide(); 
         $("#container").html(msg); 
        }); 
       } 
      }); 
     } 
     loadData(1); // For first time page load default results 
     $('#container .pagination li.active').live('click',function(){ 
      var page = $(this).attr('p'); 
      loadData(page); 

     });   

     }); 
    }); 
</script> 

我想要做的是什么,我想重装只如果我在第一页的页面,我的意思是,在分页,我们有这样的事:

<- 1 2 3 4 5 6 7 -> 

我想重新加载内容而不刷新只有当我在第一页上。 有人可以帮助我吗? 谢谢!

+1

'if(page == 1){$ .ajax({...}); }' – adeneo

+0

我明白这个逻辑,我的意思是我知道它应该是怎样的,但我不能为它编写代码,我甚至不知道把它放在上面的部分以及如何重新加载它。 – ossial

回答

0
$('#container .pagination li.active').live('click',function(){ 
    var page = $(this).attr('p'); 

    if(page === 1){ 
     setTimeout(function(){ 
      loadData(page); 
    }, 2000); 

    } 
}); 

这里有一个类似的解决方案已经公布了一个,但2秒后执行。将第二个参数(毫秒)更改为您需要的任何值。

+1

'live()'已弃用...请参阅API文档。使用'on()'代替 – charlietfl

+0

谢谢。我主要只是建立在已发布的内容上,并没有像我应该那样快速检查API。 –

0

尝试

$('#container .pagination li.active').live('click',function(){ 
    var page = $(this).attr('p'); 
    if(page == 1) 
     loadData(page); 

});  
+0

这可以防止页面从一个页面转到另一个页面,再加上它不会在x秒后重新加载第一个页面。 – ossial

+2

@ossial没有提及有问题的'x秒'。 @Andy代码做你的解释要求。也许你应该更具体的问题关于想要的行为 – charlietfl

+0

好吧,在实施安迪的代码后,我无法从一个页面移动到另一个..是的,对不起,我认为我确实提到了重新加载而不刷新的事实,只有第一页,所以我可以得到实时数据.... 我不知道这是否可以在这里虽然.. – ossial