jQuery寻呼机不在最后一页上工作

时间:2011-11-23 01:53:57

标签: javascript jquery

我的寻呼机工作除了你点击的最后一页。因此,如果我的最后一页是11,那么点击后,寻呼机会在倒退时停止工作。如果单击某个页面然后单击另一个页面,则除最后一页外,其工作正常。它在jsFiddle上(已更新并正在使用

使用Javascript:

$(document).ready(function () {
var pageIndex = 1;
function pagerControl(pageIndex, pageCount, step) {
    var result = "";

    if (pageCount > 1) {
        var startPoint = Math.floor((pageIndex / step)) * step;

        if ((pageIndex % step) == 0) {
            startPoint -= step;
        }
        if (pageIndex < pageCount) {
            result += '<a href="#" rel="' + (pageIndex + 1) + '">Next</a>';
        }
        else {
            result += '<span>Next<span>';
        }
        //alert(startPoint);
        for (var i = startPoint + 1; i <= pageCount && i <= (startPoint + step + 1); i++) {
            if (i != pageIndex) {
                result += '<a href="#" rel="' + i + '">' + i + '</a>';
            }
            else {
                result += '<span>' + i + '</span>';
            }
        }

        if (pageIndex > 1) {
            result += '<a href="#" rel="' + (pageIndex - 1) + '">Prev</a>';
        } else {
            result += '<span>Prev</span>';
        }

    }
    $('#pager').html(result);

    $('#pager > a').click(function (e) {
        reload($(e.target).attr('rel'));
        e.preventDefault();
    });
}
function reload(page) {
    pagerControl(page, 11, 4);
}
pagerControl(1, 11, 4);
});

jsFiddle

2 个答案:

答案 0 :(得分:2)

使用链接而非现有' $('#pager a').click '绑定点击事件时,请尝试此' $('#pager > a').click '

它正在我这边工作。我知道这不是一个详尽的答案,而是一个快速的纠正。

.. :))

答案 1 :(得分:1)

有时我们会把事情弄得太复杂。在大多数情况下,废除“if”声明怎么样?

    var pageIndex = 1;
    function pagerControl(pageIndex, pageCount, step) {
        var result = '';

        if (pageCount > 1) {
            pageIndex = (pageIndex > pageCount) ? pageCount : pageIndex;
            var startPoint = Math.floor((pageIndex / step)) * step;
            var endPoint = pageCount;

            startPoint = (startPoint < 1) ? 1 : startPoint;
            endPoint   = ((startPoint + step) > pageCount) ? pageCount : (startPoint + step -1);

            result = '<a href="#" rel="' + (startPoint-4) + '">PREV</a>   ';
            for (var i=startPoint;i<(endPoint+1);i++) 
                result += '<a href="#" rel="' + i + '">' + i + '</a>';
            result += '<a href="#" rel="' + endPoint+4 + '">   NEXT</a>';
        }
        $('#pager').html(result);
        $('#pager > a').click(function (e) {
          reload(parseInt($(e.target).attr('rel')));
          e.preventDefault();
        });
    }

    function reload(page) {
        pagerControl(page, 11, 4);
    }

    pagerControl(1, 11, 4);