jQuery Paginator 3000 +

jQuery Paginator 3000 + — это виджет постраничной навигации реализованный в виде плагина для jQuery .

Я хотел бы сразу оговорится, что бы мне не присуждали все заслуги от идеи и до реализации, что впервые данную идею предложил Максим Попов, как сообщает нам автор первой реализации данного виджета koraboz, так же путем логики и размышлений почти к тому же самому результату пришел и «гуру» юзабилити Ярослав Бирзул, о чем он поведал всем в своем блоге.

Ниже в таблице представленные все версии данного плагина когда либо выпущенные мною.

 ZIP  Имя файла  Размер  Дата выпуска Лицензия
paginator_3000_1_2.zip 43.9 КБ  8 июля 2011  GPL
paginator_3000_1_1.zip  41.8 КБ  7 августа 2010  GPL
paginator_3000_1_0.zip  10 января 2010  GPL

Давайте разберем основные параметры данного плагина, в самом плагине объект параметров объявлен следующим образом:

//set default options
var options = {
    pagesTotal   : 1,
    pagesSpan    : 10,
    pageCurrent  : 1,
    baseUrl      : document.location.href+'&page=%number%',
    buildCounter : buildCounter,
    pageScroll 	 : 3,
    clickHandler : null,
    eturnOrder   : false,
    lang         : {
        next  : "Следующая",
        last  : "Последняя",
        prior : "Предыдущая",
        first : "Первая",
        arrowRight : String.fromCharCode(8594),
        arrowLeft  : String.fromCharCode(8592)
    },
    events       :{
        keyboard: true,
        scroll: true
    }
};

И так теперь более подробно:

pagesTotal — целое число. Задает общее количество страниц которое будет отображено в пагинаторе.

pagesSpan — целое число. Количество отображаемых страниц.

pageCurrent — целое число. Номер текущей страницы.

baseUrl — строка. Шаблон ссылки для навигации, данный параметр должен обязательно содержать значение %number% которое символизирует номер текущей страницы (по умолчанию) и подставляется в шаблон при генерации ссылок как результат функции buildCounter.

buildCounter — функция. Функция расчета значения %number% для шаблона ссылки, по умолчанию значение равно:

function buildCounter(page){ return page; }

pageScroll -целое число. Значение сообщает плагину о количестве страниц перелистываемых за 1 такт скрола мыши.

clickHandler — функция. CallBack функция вызываемая при клике по ссылке.

returnOrder — логическое (true/false). Cообщает плагину какой порядок страниц необходимо использовать прямой — false, или обратный — true.

lang — объект локализации плагина.

events — объект логических значений сообщающих плагину о необходимости использования событий: скролла мыши — events.scroll, клавиатуры — events.keyboard (навигация при помощи сочетаний клавиш Ctrl+Left и Ctrl+Right).

Демо версия.

jQuery Paginator 3000 +: 34 комментария

  1. Здравствуйте!

    Во первых, большое спасибо автору за данную реализацию пагинатора, с лёгкостью прикрутил его к Joomla в виде плагина.

    Ниже была описана проблема — «Я тоже заметил баг, если pagesTotal = 8 и pagesSpan = 5», предположительно связанная с вычислением percentFromLeft. По моим наблюдениям баг проявляется не только с обозначенными цифрами, но и с другими вариациями количества страниц. Подскажите, пожалуйста, как это исправить, если у Вас нет возможности выложить исправленную версию.

    1. День добрый. К сожалению как исправить не знаю, не разбирался с проблемой т.к. нет времени. В любом случае, проект есть на github, если узнаете в чем разберетесь в чем проблема делайте pull request и внесем ваши изменения в проект. Спасибо.

  2. Hello! This paginator is very amazing! Its the best and the most complet I have seen until now.

    But,… I’m trying use it, charging dates from mysql inside a but I cannot see the first one of every page! I lost the first in every page. Why? I woud like some one help me.

    Thanks!

  3. Спасибо, очень удобная вещь. Если проект еще жив, подскажите пожалуйста.
    pageCurrent — это я прописываю номер активной страницы, как сделать отображение именно текущей страницы. Если пользователь зашел на страницу сайта page=30 или любую другую, то хотелось бы чтобы он видел номер текущей страницы, а не pageCurrent : 1, или я недопонял настройки?

    1. Автоматического распознавания активной страницы плагин не имеет, но можно прикрутить самостоятельно при его инициализации, в случае если вам это необходимо.

  4. Как его прикрутить к WP? С пагинатором 3000 все получилось почти без проблем, этот же ***нехорошее слово*** не появляется и все. Я уже голову сломал и попросту потерял на это надежду….

    1. Практически аналогичным образом, только не забудьте перед его подключением подключить jQuery на страницу.

  5. Не появилось обновленной версии с правильным подсчетом страниц? Я тоже заметил баг, если pagesTotal = 8 и pagesSpan = 5

    1. Пока обновлений не выходило, на данный момент загружен работой и нет времени исправлять баги.

      1. Я исправил ошибку для себя, там неправильно высчитывалось percentFromLeft. Если нужно — готов прислать

        1. Присылайте, и я выложу исправленный вариант у себя в блоге, что бы все могли пользоваться корректным вариантом плагина.

          1. На тот e-mail, что указан в копирайте в плагине?

          2. Если честно, я не нашел ни в одном файле того что бы я указывал email в копирайте … ну это не суть вот можете отправить сюда novichkovsergey<

    1. Конечно можно я думаю в этом ничего сложного нет, лично с DLE я не знаком но могу предположить что для того что бы его установить на DLE нужно подправить шаблон отвечающий за вывод пагинатора.

  6. С jQuery 1.7 косяк появился, если установить clickHandler, например:

    clickHandler:function(page){
    alert(page);
    }

    В результате показывает два алерта первый то что должно быть, а второй NAN.

    1. Данный плагин с jQuery 1.7 не тестировался. Но спасибо за сообщение об ошибке, в будущем релизе обязательно протестирую и исправлю все ошибки.

  7. Сделай что бы можно было добавить атрибут(ы) ссылкам, у меня например ссылки такого вида: link

    P.S пробовал clickHandler — но он работает не так как написано, он срабатывает при загрузки страницы, а не при клике на ссылки.

    1. И ещё, сделай определение, если страница «Первая», то пусть ссылку делает неактивной, так же и с посл, пред, след.

      1. Поддерживаю комментарий выше. Добавьте, пожалуйста, деактивацию текста «Первая», «Последняя», если выбрана первая или последняя страница
        Спасибо!

        1. Здравствуйте, учту ваше пожелание при переработке плагина … как раз думал на праздниках переделать его для новых версий jQuery.

  8. pagesTotal : 12,
    pagesSpan : 10,
    pageCurrent : 11,

    При таком раскладе 12 страница не показывается.

    1. Спасибо за информацию, обязательно исправлю эту ошибку в будущих версиях плагина.

      1. А нельзя ли бакфиксик выпустить? Просто я смотрю на промежутки между версиями и опасаюсь, что последняя страница еще не скоро покажется :)

        1. Конечно можно и даже нужно, постараюсь сделать это в ближайшее время, как только появится чуть чуть свободного времени.

        2. Поскольку ответа от автора я так и не увидел, а боевые проекты начали переходить на jQuery 1.7.1, то наткнулся на данную проблему. Лечится крайне просто, откройте файл плагина, найдите:
          a[rel!=»»]
          и замените на:
          a[rel]
          В коде это найдется дважды.

      1. Наследование лицензии в случае модификации исходного кода, то есть модифицированный или объединенный с другим код в результате так же должен быть выпущен под лицензией GNU GPL, следовательно, быть доступным для модификации любым желающим.

Добавить комментарий для @perture Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *