在之前的项目中,我写的JS的所有DOM都是以参数的形式传递,然后对DOM进行操作,这样就不符合面向对象的设计思路。所以引入了jQuery插件。
我借鉴网上的实例,做了一个简单的JQuery插件。实现的功能是Table中每奇数度行与偶数行颜色不一样,同时高亮显示选中行。
代码如下:
/*
* tableUI 0.1
* Copyright (c) 2009 JustinYoung http://justinyoung.cnblogs.com/
* Date: 2010-03-30
* 使用tableUI可以方便地将表格提示使用体验。先提供的功能有奇偶行颜色交替,鼠标移上高亮显示
*/
// JavaScript Document
(function($){
$.fn.tableUI = function(options){
var defaults = {
evenRowClass:"evenRow",
oddRowClass:"oddRow",
activeRowClass:"activeRow"
}
}
//合并多个对象为一个,这里就是,如果你在调用的时候写了新的参数,则用新,否则用旧的。
var options = $.extend(defaults, options);
this.each(function(){
//插件的实现
var thisTable=$(this);
//添加奇偶行颜色
$(thisTable).find("tr:even").addClass(options.evenRowClass);
$(thisTable).find("tr:odd").addClass(options.oddRowClass);
//添加活动行颜色
$(thisTable).find("tr").bind("mouseover",function(){
$(this).addClass(options.activeRowClass);
});
$(thisTable).find("tr").bind("mouseout",function(){
$(this).removeClass(options.activeRowClass);
});
});
};
})(jQuery);
1、$(function($){})(JQuery); 匿名函数 参数是'$' 调用者是JQuery
$(function($){}); 必须在所有的DOM引入完成后,才调用的。
2、 $.fn = JQuery.property JQuery的成员函数
$. ==JQuery JQuery类
$.fn.tableUI 一个函数
$.fn.extends({}); 多个函数
$.extends({}); 多个静态函数