2013-07-30 180 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包裹在