2011-12-15 123 views
0

好吧,我正在嘗試使一個系統有三個部分。菜單,內容區域和分頁區域。除了菜單,這些區域中的每一個都是在運行時通過jquery的.load調用加載的。順便說一句,我正在做這個WordPress插件。JQuery分頁問題

例如在加載時,我通過.load將postload加載到.content類中,並將page.php加載到.pagination類中。這一切都是使用默認設置完成的,即我通過後期加載方式發送默認設置。菜單代碼從一開始就在那裏。

問題在於分頁。我希望這樣做,所以當你點擊下一頁時,它會加載下一個內容,並在分頁系統上向上移動頁面,而不用在wordpress中再次加載整個頁面。我認爲jquery會在這裏工作,但問題是,如果我將jQuery打電話分頁爲jQuery調用,當用戶單擊下一頁時,檢測將不得不嵌套在第一個分頁調用中,對嗎?這是因爲一個巨大的循環。

所以問題是如何建立一個分頁系統,它將調用下一個內容並將其加載到內容區域中,並在自己的系統中移動頁面,而不必再次加載整個頁面,因爲它是一個WordPress的插件。

任何幫助?

編輯: 我想指出的是,我是新來的jQuery。

+0

我想我的問題是如何進行嵌套調用。那是我通過.load加載一個文件,並且返回的html現在是一個新的dom對象,所以要調用它中的一個元素,從我所知道的,你必須把它放在加載html的.load函數下。 – Tempus35 2011-12-15 02:48:12

回答

1

假設你load()返回數據,看起來是這樣的:

<ul> 
    <li>item1</li> 
    <li>item2</li> 
</ul> 
<div id='pagination'> 
    1 
    <a href='/path/to/this/page?page=2'>2</a> 
    <a href='/path/to/this/page?page=3'>3</a> 
</div> 

您可以修改所有<a>標籤它們加載到一個特定的div後,像這樣:

$('#mymenu').load('/path/to/this/page?page=1', function(){ 
    setAjaxLinks(); 
}); 

而且具有功能setAjaxLinks定義如下:

$('#mymenu').find('a').click(function(event){ 
    event.preventDefault(); 
    $('#mymenu').load($(this).attr('href'), function(){ 
     setAjaxLinks(); 
    }); 
    return false; 
}); 

setAjaxLinks函數的關鍵點在於它設置了一個函數,以便在單擊鏈接時執行的操作。它是:

  1. 發送下一頁的AJAX請求並將其加載到頁面上的相應位置。
  2. 查找響應中的分頁鏈接,並與我們想的分頁鏈接做的,這就是更換自己click事件......

    A.發送一個AJAX請求..和

    B.查找響應中的分頁鏈接,並與....

因此,我們結束了一個遞歸調用setAjaxLinks取代他們click事件。

+0

有趣,但我真的沒有分頁部分的設置。我每次都有一個發送的html更像每個頁面的$current。我也有一個分頁系統,它被加載到第一個php頁面,並且沒有jquery。 第一個想法是調用$(「c_page」)。點擊並獲取它的名稱值。並通過jquery發回這些信息來重新加載php的內容和分頁,但我無法得到它的工作。 – Tempus35 2011-12-15 02:36:04