2012-12-16 78 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