我的Jquery笔记:插件制作与回调函数(一)
做了一个简单的插件例子,主要来学习以下功能:
1、如何建立一个jQuery插件
2、如何初始化插件,对插件中的变量进行赋值
3、如何使用回调函数返回插件执行过程中的变量
index.html
我是红色
我是绿色
我是蓝色
myplugin.js
(function($) {
$.fn.myplugin = function(options, callback) {
var colour = null;
var obj = this;
var randID = _getRandomString(5);//获取长度为5的随机字符串
return this.each(function(index, el) {
var settings = $.extend({
colour: 'red'//默认为红色
}, options);
colour = settings.colour;//根据传入的颜色赋值给colour
obj.css('color', colour);
obj.after(//新建一个来显示randID,并根据不同的颜色显示
$('
')
.attr('id', randID)
.html(randID)
.css('color', colour)
);
$('#' + randID).click(function(event) {//点击新创建的然后弹出对话框显示randID
alert('当前id:'+$(event.target).html()+' randID:'+randID);
});
if (typeof callback === 'function'){//判断传入的参数是否为函数,如果为函数将randID返回
callback(randID);
}
});
/*
*随机字符串函数
*return String
*/
function _getRandomString(len) {
len = len || 32;
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; // 默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1
var maxPos = $chars.length;
var pwd = '';
var i;
for (i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
}
})(jQuery);
网页完整效果
有0条评论