第一次做的插件,早写好了,后来发现一个jquery插件模板,就拿过来套。名字叫jquery.boilerplate.js。我的理解不是很深,也不太理解太多效率问题。
本来我是一个做asp.net开发的,可是公司好些个人包括美工没太会js啊。项目很多js改来改去搞得我都头大了。萌发了写插件的想法,于是照葫芦画瓢写啊,写插件的过程也学了js的面向对象。对js,还有一些效率问题有了更深了解。以前有个项目单个页面写过600多行的js文件。全是按功能面向过程写的。乱的不堪回首啊好吧先是说一下插件吧。
插件叫AmSetPager,首先是看一下样子:
![]()
此处下载:点击下载
我这个插件好像使用有些另类,是调用数据展示容器的元素$(“#DataContent”).AmSetPager({…});在参数中配置分页容器元素ID。写完插件后看别的插件都是调用分页元素ID
贴下源码:
(function ( $, window, document, undefined ) {
// Create the defaults once
var pluginName = “AmSetPager”,
defaults = {
pagerName: “pager”, //分页的容器
viewCount: 5, //可显示多少条数据
dataCount: 0, //如果后台取数据,总数多少(静态的不用)
selectClass: “selectno”, //选中的样式
listCount:10, //显示多少个分页码(不包括前一页,后一页)<SPAN style=”FONT-FAMILY: Arial, Helvetica, sans-serif”>,mode=default时该值需设置为5以上</SPAN>
enablePrevNext:true, //允许显示前一页后一页
enableFirst:true, //允许只有一页的情况下显示页码
template:”default”, //模板(现只有default)
mode:”static”, //”url” or “ajax”
urlparameter:””, //url参数,后面aa=1&bb=2…
callback:null //回调函数(ajax取数据或者静态也可以使用)
};
// The actual plugin constructor
function Plugin( element, options ) {
this.element = element;
this.options = $.extend( {}, defaults, options );
//this._defaults = defaults;
this._name = pluginName;
this.init();
}
//private
//获取url参数
var getQueryString = function (name) {
var reg = new RegExp(“(^|&)” + name + “=([^&]*)(&|$)”, “i”);
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return undefined;
}
//静态模板数据展示
var Bind_StaticData = function($content,minnum,maxnum) {
if (minnum > 0) {
$content.children(“:gt(” + (minnum – 1) + “):lt(” + maxnum + “)”).css(“display”, “block”);
} else {
$content.children(“:lt(” + maxnum + “)”).css(“display”, “block”);










