2013-04-24 44 views
0

使用jquery load函數刷新div的內容。使用Jquery load來刷新div,然後在重新顯示內容之前單擊一個鏈接

我開始通過隱藏的div

$('.dashboard-body').fadeOut(50); 

然後阿賈克斯負載 - 刷新內容

load事件之後,並同時刷新DIV仍有隱憂ID喜歡點擊的內容之一分頁鏈接。然後當再次顯示div時,會顯示正確的內容。

繼承人不起作用的代碼。我使用livequery插件作爲DOM中新元素的偵聽器。

$('.dashboard-body').load(target, function(){ 
       $('.pagination ul li a').livequery(function(){ 
        $(this).each(function(){ 
         var target_page = $(this).html(); 
         if(target_page == return_page){ 
          $(this).click(); 
         } 
        }); 
       }); 

       $('.dashboard-body').fadeIn('slow',function(){ 
        //success 
       }); 

      }); 

上面的代碼在我的腦海中執行以下操作。

它使用類儀表板主體將目標頁面加載回div。

其使用的liveQuery

然後,它在每一個環節迭代發現

它發現鏈接數值即監聽加載到DOM中新分頁鏈接。 1,2,3 ....並且被定義爲潛在的目標頁碼。

然後如果目標頁面和返回頁碼(這是一個預定義的變量)是相等的。點擊此鏈接。

這一切似乎工作和使用控制檯我可以看到,本聲明

if(target_page == return_page){ 

是真的,一旦如預期,但Click事件不會發生,就好像犯規存在的元素,但它應該做的正如它剛剛迭代他們。

我不能看到什麼是錯的任何想法?或者,還有更好的方法?

回答

0

我做了一個測試http://jsfiddle.net/y6yJN/沒有.load - 它按預期工作,點擊處理程序至少在我的瀏覽器中工作得很好。另外,我使用.text()而不是.html()來獲取鏈接中的字符串編號。

我一塊標記

<div class="pagination"> 
    <ul> 
     <li> 
      <a href="#example">1</a> 
     </li> 
     <li> 
      <a href="#example2">2</a> 
     </li> 
     <li> 
      <a href="#example3">3</a> 
     </li>   
    </ul> 
</div> 

和腳本:

var return_page = '2'; //some string 

//click handler for links 
$('.pagination ul li a').click(function(e){ 
    e.preventDefault; 
    alert($(this).attr('href')); 
    return false; 
}); 


//must alert '#example2' on page load 
$('.pagination ul li a').each(function(){ 
    page_number = $(this).text(); 
    if(page_number === return_page){ 
     $(this).click(); 
    } 
}); 

此外我認爲你不需要的liveQuery或如此,因爲回調函數被調用的DOM更改後,使得jQuery的已經在新的DOM上收集了。我可以在這裏錯了。

+0

謝謝您的回答,但沒有的liveQuery每個循環犯規找到任何元素。我剛剛綁住了它。我的代碼適用於IF語句中的代碼。點擊不會觸發。但是,如果我改變點擊添加類它工作得很好。 – Aparistar 2013-04-24 09:44:37

+0

好的。你能附加一個鏈接的標記,它被加載到.pagination中嗎? – 2013-04-24 10:08:46

+0

即使沒有淡出和淡入只是這個碼$(」。儀表盤體 ')。負載(目標,功能(){ \t \t \t \t \t //$('.dashboard-body').fadeIn('slow' ,函數(){ \t \t \t \t \t \t的console.log($(」分頁UL立一個:方程(1)。 ')文本()); \t \t \t \t \t $(' 分頁UL裏。 :eq(1)')。click(); \t \t \t \t //}); \t \t \t \t});它不起作用。控制檯返回一個空字符串 – Aparistar 2013-04-24 10:20:19

0

我需要添加此代碼爲click事件處理程序

$('body').on('click','.pagination ul li a',function(event){ 
相關問題