简单的jquery插件编写:table换行颜色变化

一、开始编写插件:(转载)
1、结构:(function($){})(jQuery); 或$(fn) 或$(function(){});  // 等价于$(document).ready(function){});
(function($){


})(jQuery);
2、插件的定义:$.fn.插件名 = function(){}  函数中为插件的各种属性、参数
(function($){
$.fn.插件名 = function(){
};
})(jQuery);


3、在函数中邪插件的各种属性、参数
(function($){
$.fn.tableUI = function(options){
var defaults = {
evenRowClass :"evenRow";
oddRowClass:"oddRow";
activeRowClass:"activeRow";
}
};
})(jQuery);


4、定义好函数的属性和对应的值以后,合并插件名的调用即扩展jquery功能:var options = $.extend(defaults,options);  
var options = $.extend(defaults,options);   // 合并多个参数options到defaults中为一个参数。返回值为合并后的defaults
扩展已经有的objiect的对象:var newSrc = $.extend(dest,src1,src2,src3...)将后面几个合到dest中,返回值为合并后的dest。
(function($){
$.fn.tableUI = function(options){
var defaults = {
evenRowClass :"evenRow";
oddRowClass:"oddRow";
activeRowClass:"activeRow";
}
var options = $.extend(defaults,options);  
};
})(jQuery);


5、实现插件的功能代码
this.each(function){
// 实现代码
// this,使用这个插件的对象。此处应该为table对象。
var thisTab = $(this)    // this是html dom对象,$(this)是jquery对象。
// $(thisTab)? 不是thisTab??
$(thisTab).find("tr:even").addClass(options.evenRowClass); // options.evenRowClass:options是扩展后的jquery插件对象。evenRowClass是调用它的属性。
$(thisTab).find("tr:odd").addClass(options.oddRowClass);
$(thisTab).find("tr").on("mouseover",function(){
$(thisTab).addClass(options.activeRowClass)
});
$(thisTab).find("tr").on("mouseout",function(){
$(thisTab).removeClass(options.activeRowClass)
});


6、调用插件
$(function(){
$("#tableID").tableUI();
})(jQuery);

总结:

(function($){ 
$.fn.yourName = function(options){ 
//各种属性、参数 

var options = $.extend(defaults, options); 
this.each(function(){ 
//插件实现代码 
}); 
}; 
})(jQuery); 



完整代码测试:
<html>
<head>
<title>table 不同行颜色变化 </title>
<style type="text/css">
.active{background-color:#fff;}
.even{background-color:#EBEBEB;}
.odd{background-color:#5dbafd;}
tr td{border: 1px solid #000;height:32px;line-height:32px;text-align:center;}
</style>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript">
(function($){
$.fn.tableUI = function(options){
var defaults = {
evenRowClass:"even",
oddRowClass:"odd",
                         eRowClass:"even",
oClass:"odd"
}
var options = $.extend(defaults, options);
this.each(function(){
var thisTab=$(this);   // $(thisTab)与thisTab??

$(thisTab).find("tr:even").addClass(options.evenRowClass);
$(thisTab).find("tr:odd").addClass(options.oddRowClass);

$(thisTab).find("tr").on("mouseover",function(){
                            $(this).addClass(options.oClass);
                             });
                        $(thisTab).find("tr").on("mouseout",function(){
                             $(this).removeClass(options.oClass);
                          });
});
};
})(jQuery);

</script>


<script type="text/javascript">
$().ready(function(){ //不可以用$(function($){})等简写方式?
$("#tableID").tableUI();
})
//})(jQuery);
</script>

</head>


<body>
<table width="100%" id="tableID">
<tr><td>标题</td><td>01</td></tr>
<tr><td>结构</td><td>01</td></tr>
<tr><td>样式</td><td>01</td></tr>
<tr><td>题目</td><td>01</td></tr>
<tr><td>总结</td><td>01</td></tr>
</table></body>

</html>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值