Blame | Letzte Änderung | Log anzeigen | RSS feed
/*** @preserve* bootpag - jQuery plugin for dynamic pagination** Copyright (c) 2013 botmonster@7items.com** Licensed under the MIT license:* http://www.opensource.org/licenses/mit-license.php** Project home:* http://botmonster.com/jquery-bootpag/** Version: 1.0.5**/(function($, window) {$.fn.bootpag = function(options){var $owner = this,settings = $.extend({total: 0,page: 1,maxVisible: null,leaps: true,href: 'javascript:void(0);',hrefVariable: '{{number}}',next: '»',prev: '«'},$owner.data('settings') || {},options || {});if(settings.total <= 0)return this;if(!$.isNumeric(settings.maxVisible) && !settings.maxVisible){settings.maxVisible = settings.total;}$owner.data('settings', settings);function renderPage($bootpag, page){var lp,maxV = settings.maxVisible == 0 ? 1 : settings.maxVisible,step = settings.maxVisible == 1 ? 0 : 1,vis = Math.floor((page - 1) / maxV) * maxV,$page = $bootpag.find('li');settings.page = page = page < 0 ? 0 : page > settings.total ? settings.total : page;$page.removeClass('disabled');lp = page - 1 < 1 ? 1 :settings.leaps && page - 1 >= settings.maxVisible ?Math.floor((page - 1) / maxV) * maxV : page - 1;$page.first().toggleClass('disabled', page === 1).attr('data-lp', lp).find('a').attr('href', href(lp));var step = settings.maxVisible == 1 ? 0 : 1;lp = page + 1 > settings.total ? settings.total :settings.leaps && page + 1 < settings.total - settings.maxVisible ?vis + settings.maxVisible + step: page + 1;$page.last().toggleClass('disabled', page === settings.total).attr('data-lp', lp).find('a').attr('href', href(lp));;var $currPage = $page.filter('[data-lp='+page+']');if(!$currPage.not('.next,.prev').length){var d = page <= vis ? -settings.maxVisible : 0;$page.not('.next,.prev').each(function(index){lp = index + 1 + vis + d;$(this).attr('data-lp', lp).toggle(lp <= settings.total).find('a').html(lp).attr('href', href(lp));});$currPage = $page.filter('[data-lp='+page+']');}$currPage.addClass('disabled');$owner.data('settings', settings);}function href(c){return settings.href.replace(settings.hrefVariable, c);}return this.each(function(){var $bootpag, lp, me = $(this),p = ['<ul class="pagination bootpag">'];if(settings.prev){p.push('<li data-lp="1" class="prev"><a href="'+href(1)+'">'+settings.prev+'</a></li>');}for(var c = 1; c <= Math.min(settings.total, settings.maxVisible); c++){p.push('<li data-lp="'+c+'"><a href="'+href(c)+'">'+c+'</a></li>');}if(settings.next){lp = settings.leaps && settings.total > settings.maxVisible? Math.min(settings.maxVisible + 1, settings.total) : 2;p.push('<li data-lp="'+lp+'" class="next"><a href="'+href(lp)+'">'+settings.next+'</a></li>');}p.push('</ul>');me.find('ul.bootpag').remove();me.append(p.join(''));$bootpag = me.find('ul.bootpag');me.find('li').click(function paginationClick(){var me = $(this);if(me.hasClass('disabled')){return;}var page = parseInt(me.attr('data-lp'), 10);renderPage($bootpag, page);$owner.trigger('page', page);});renderPage($bootpag, settings.page);});}})(jQuery, window);