Update。最初的答案是针对 1.9.x。在 dataTables 1.10.x 中,它更容易:
table.on('page.dt', function() {
$('html, body').animate({
scrollTop: $(".dataTables_wrapper").offset().top
}, 'slow');
});
演示->http://jsfiddle.net/wq853akd/
另外,如果您使用数据表的引导版本,您可能会注意到,在使用修复程序时,页面实际上在滚动到顶部后向下滚动。这是因为它专注于单击的按钮这个 datatables.net 线程。您可以通过在动画调用后简单地关注表标题来解决此问题,如下所示:
table.on('page.dt', function() {
$('html, body').animate({
scrollTop: $(".dataTables_wrapper").offset().top
}, 'slow');
$('thead tr th:first-child').focus().blur();
});
原答案
你应该瞄准.dataTables_wrapper
并将事件附加到.paginate_button
反而。这里有一个漂亮的小动画:
function paginateScroll() {
$('html, body').animate({
scrollTop: $(".dataTables_wrapper").offset().top
}, 100);
console.log('pagination button clicked'); //remove after test
$(".paginate_button").unbind('click', paginateScroll);
$(".paginate_button").bind('click', paginateScroll);
}
paginateScroll();
参见小提琴->http://jsfiddle.net/EjbEJ/