//------------------------------------------------- // Quick Pager jquery plugin // Created by dan and emanuel @geckonm.com // www.geckonewmedia.com // // v1.1 // 18/09/09 * bug fix by John V - http://blog.geekyjohn.com/ //------------------------------------------------- (function($) { $.fn.quickPager = function(options) { var defaults = { pageSize: 12, currentPage: 1, holder: null, pagerLocation: "after" }; var options = $.extend(defaults, options); return this.each(function() { var selector = $(this); var pageCounter = 1; selector.wrap("
"); selector.children().each(function(i){ if(i < pageCounter*options.pageSize && i >= (pageCounter-1)*options.pageSize) { $(this).addClass("simplePagerPage"+pageCounter); } else { $(this).addClass("simplePagerPage"+(pageCounter+1)); pageCounter ++; } }); // show/hide the appropriate regions selector.children().hide(); selector.children(".simplePagerPage"+options.currentPage).show(); if(pageCounter <= 1) { return; } //Build pager navigation var pageNav = ""; if(!options.holder) { switch(options.pagerLocation) { case "before": selector.before(pageNav); break; case "both": selector.before(pageNav); selector.after(pageNav); break; default: selector.after(pageNav); } } else { $(options.holder).append(pageNav); } //pager navigation behaviour selector.parent().find(".simplePagerNav a").click(function() { //grab the REL attribute var clickedLink = $(this).attr("rel"); options.currentPage = clickedLink; if(options.holder) { $(this).parent("li").parent("ul").parent(options.holder).find("li.currentPage").removeClass("currentPage"); $(this).parent("li").parent("ul").parent(options.holder).find("a[rel='"+clickedLink+"']").parent("li").addClass("currentPage"); } else { //remove current current (!) page $(this).parent("li").parent("ul").parent(".simplePagerContainer").find("li.currentPage").removeClass("currentPage"); //Add current page highlighting $(this).parent("li").parent("ul").parent(".simplePagerContainer").find("a[rel='"+clickedLink+"']").parent("li").addClass("currentPage"); } //hide and show relevant links selector.children().hide(); selector.find(".simplePagerPage"+clickedLink).show(); return false; }); }); } })(jQuery);