(function($) { $.fn.quickPager = function(options) { var defaults = { pageSize: 10, currentPage: 1, navid: 'pageNav', holder: "" }; var options = $.extend(defaults, options); var selector = $(this); var totalRecords = $(this).children().length; var pageCounter = 1; selector.children().each(function(i) { if (i < pageCounter * options.pageSize && i >= (pageCounter - 1) * options.pageSize) { $(this).addClass("page" + pageCounter) } else { $(this).addClass("page" + (pageCounter + 1)); pageCounter++ } }); selector.children().hide(); $(".page" + options.currentPage).show(); if (pageCounter > 1) { var pageNav = "<ul class='restPager' id='" + options.navid + "'>"; for (i = 1; i <= pageCounter; i++) { if (i == options.currentPage) { pageNav += "<li class='currentPage' id='" + options.navid + i + "'><a rel='" + i + "' href='#'>" + i + "</a></li>" } else { pageNav += "<li class='' id='" + options.navid + i + "'><a rel='" + i + "' href='#'>" + i + "</a></li>" } } pageNav += "</ul>"; if (options.holder == "") { selector.after(pageNav) } else { $(options.holder).append(pageNav) } $("ul#" + options.navid + " a").live("click", function() { var clickedLink = $(this).attr("rel"); options.currentPage = clickedLink; $("#" + options.navid + " li.currentPage").removeClass("currentPage"); $("ul#" + options.navid).find("a[rel='" + clickedLink + "']").parent("li").addClass("currentPage"); selector.children().hide(); selector.find(".page" + clickedLink).show(); return false }) } } })(jQuery);