/** * Пагинация * * @module ls/pagination * * @license GNU General Public License, version 2 * @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com} * @author Denis Shakhov */ var ls = ls || {}; ls.pagination = (function($) { "use strict"; /** * Дефолтные опции */ var defaults = { keys: { additional: 'ctrl', next: 39, prev: 37 }, // Селекторы selectors: { pagination: '.js-pagination', next: '.js-pagination-next', prev: '.js-pagination-prev' } }; this.oPagination = false; this.sLinkNext = false; this.sLinkPrev = false; /** * Инициализация * * @param {Object} options Опции */ this.init = function(options) { var self = this; this.options = $.extend({}, defaults, options); this.oPagination = $(this.options.selectors.pagination).eq(0); this.sLinkNext = this.oPagination.find(this.options.selectors.next).attr('href'); this.sLinkPrev = this.oPagination.find(this.options.selectors.prev).attr('href'); // Переход по страницам $(document).on('keyup', function (e) { var key = e.keyCode || e.which; if (self.options.keys.additional ? e[self.options.keys.additional + 'Key'] : true) { switch (key) { case self.options.keys.prev: self.prev(); break; case self.options.keys.next: self.next(); break; } } }); }; /** * Переход на следующую страницу * * @param {Boolean} bScroll Скролл к первому топику на странице */ this.next = function(bScroll) { if (this.sLinkNext) window.location = this.sLinkNext + (bScroll ? '#goTopic=0' : ''); }; /** * Переход на предыдущую страницу * * @param {Boolean} bScroll Скролл к последнему топику на странице */ this.prev = function(bScroll) { if (this.sLinkPrev) window.location = this.sLinkPrev + (bScroll ? '#goTopic=last' : ''); }; return this; }).call(ls.pagination || {},jQuery);