4

約50divのページがあります。クライアントが「情報過多」にならないように、これらのdivを6つのグループに編成したいと思います。問題の簡単な例/縮小されたテストケースを作成しました。ご覧のとおり、divがたくさんあり、ページが読み込まれたときに最初の6つだけが表示されるようにしたいのですが、2ページ目以降をクリックすると、次の6つが表示されます。現在使用しているページ番号のクラスもに設定する必要がありますclass="current"

これまでjQueryを使用してみましたが、かなり行き詰まっています。どんな助けでも大歓迎です!

4

3 に答える 3

23

ページが要求されたら、すべてのコンテンツdivを非表示にしてから、それらを繰り返し処理して、「ページ」に表示されるはずのdivを表示します。

showPage = function(page) {
    $(".content").hide();
    $(".content").each(function(n) {
        if (n >= pageSize * (page - 1) && n < pageSize * page)
            $(this).show();
    });        
}

http://jsfiddle.net/jfm9y/184/

于 2012-04-05T19:45:04.627 に答える
5

このコードの一部はきれいではありませんが、私はそれが仕事をしていると思います

var currentpage = 1;
var pagecount = 0;

function showpage(page) {
    $('.content').hide();
    $('.content').eq((page-1)*6).show().next().show().next().show().next().show().next().show().next().show();
    $('#pagin').find('a').removeClass('current').eq(page).addClass('current');

}

$("#pagin").on("click", "a", function(event){
    event.preventDefault();
    if($(this).html() == "next") {
        currentpage++;
    }
    else if($(this).html() == "prev") {
        currentpage--;
    } else {
            currentpage = $(this).html();
    }
    if(currentpage < 1) {currentpage = 1;}
    if(currentpage > pagecount) {currentpage = pagecount;}
    showpage(currentpage);
});                                                                  

$(document).ready(function() {
    pagecount = Math.floor(($('.content').size()) / 6);
    if (($('.content').size()) % 6 > 0) {
        pagecount++;
    }

    $('#pagin').html('<li><a>prev</a></li>');
    for (var i = 1; i <= pagecount; i++) {
        $('#pagin').append('<li><a class="current">' + i + '</a></li>');
    }
    $('#pagin').append('<li><a>next</a></li>');
    showpage(1);

});​
于 2012-04-05T21:10:23.360 に答える
0

次のコードはhttps://deltafrog.com/pagination-jquery-without-plugin/から取得されます

jQuery('document').ready(function(){
var item_per_page=5;
var $block=jQuery('.block');
var block_count=$block.length;
var number_of_pages=Math.ceil(block_count/item_per_page);

//append pagination in body
jQuery('body').append("<div class='pagination'></div>");
for(var i=1; i<=number_of_pages; i++){
    jQuery('.pagination').append("<div class='page'>"+i+"</div>");  
}

//activate first page
jQuery(".page:first-child").addClass('active');
jQuery('.block').filter(function( index ) { return index < item_per_page;}).addClass('active');

//activate pagination on click
jQuery('body').delegate('.page','click',function(){
    var page_index=jQuery(this).index();
    var start=page_index*item_per_page;
    $block.removeClass('active');
    jQuery(".page").removeClass('active');
    jQuery(".page").eq(page_index).addClass('active');
    for(var j=0;j<item_per_page;j++){
        $block.eq(start+j).addClass('active');
    }

});

});
于 2019-09-24T04:01:07.773 に答える