html代码:
<ul id="catagory">
<li id="7"><a href="#">jQuery</a></li>
<li><a href="#">Asp.net</a></li>
<li><a href="#">Sql Server</a></li>
<li><a href="#">CSS</a></li>
</ul>
js代码:
//为避免冲突,将定义的方法用一个匿名的方法包裹起来
(function ($) {
//扩展这个方法到jquery
//$.fn是jquery的命名空间,加上fn上的属性和方法,会对jquery每一个实例有效
//如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了
//那么你可以这样子:$("#div").abc();
//jQuery.extend(object); 用来在jQuery命名空间上增加新函数。
//jQuery.fn.extend(object);给jQuery对象添加方法。
$.fn.extend({
//(方法)插件名称 - paddingList
//将可选择的变量传给方法
paddingList: function (options) {
//参数和默认值
var defaults = {
animatePadding: 10,
hoverColor: "Black",
};
var options = $.extend(defaults, options);
//遍历匹配函数的集合
return this.each(function () {
var o = options;
//将元素集合赋给变量 本例中是 ul对象
var obj = $("ul");
//得到ul中的a对象
var items = $("li a", obj);
//添加hover()事件到a
items.hover(function () {
$(this).css("color", o.hoverColor);
//queue false表示不添加到动画队列中
$(this).animate({ paddingLeft: o.animatePadding }, { queue: false, duration: 300 });
}, function () {
$(this).css("color", "#000000");
$(this).animate({ paddingLeft: "0" }, { queue: true, duration: 300 });
});
});
}
});
})(jQuery);
使用插件的方法:
$(document).ready(function(){
$("#catagory").paddingList({ animatePadding:30, hoverColor:"Red" });
});