2013-07-30 120 views
0

我目前正在研究一些ajax分頁。這裏是我的代碼:jquery ajax分頁在第二次點擊後停止工作

jQuery(function ($) { 

$('#content').on('click', '.navigation a', function (e) { 
    e.preventDefault(); 
    var link = $(this).attr('href'); 

    $('#content').fadeOut(200, function() { 
     $(this).load(link + ' #content', function() { 
      $(this).fadeIn(200); 

      if ($("#content > div#content").length > 0) { 
       $("#content > div#content").unwrap(); 
      } 

     }); 
    }); 
});}); 

這對於前2頁非常有用。在第二頁之後,jquery元素停止工作,並且默認返回到正常分頁?

任何人都可以看到爲什麼會這樣嗎?

+0

什麼用e.preventDefault問題? – danyo

回答

0

除非此代碼位於加載到#content的內容中的<script>標記內,否則將發生的情況是動態加載的內容中的鏈接將不具有點擊結合。

您可能需要重新申請點擊綁定:

$(...).load(..., function() { 
    // ... 
    $('#content').on('click', ... 
}); 

當然,你必須定義一個適當的功能進行綁定。否則,你需要重新編寫相同的代碼...

一個有點hackish,在僞代碼:

jQuery(function ($) { 

    function myPaginator (e) { 
     e.preventDefault(); 
     var link = $(this).attr('href'); 

     $('#content').fadeOut(200, function() { 
      $(this).load(link + ' #content', function() { 
       $(this).fadeIn(200); 

       if ($("#content > div#content").length > 0) { 
        $("#content > div#content").unwrap(); 
       } 
       $('#content').on('click', '.navigation a', myPaginator); 
      }); 
     }); 
    }); 

    $('#content').on('click', '.navigation a', myPaginator); 

}); 
+0

上面的js包裹在