jQuery表格插件(隔行换色、划过变色、全选)
2012-12-04 20:53
399 查看
项目地址:https://github.com/xucongli1989/XTableList
下载地址:https://github.com/xucongli1989/XTableList/releases
//by:xcl @2012.8 qq:80213876 ; (function ($) { $.extend({ XTableList: function (options) { options = $.extend({}, funs.Defaults, options); funs.Init(options); $(options.tableClass).each(function () { var $trs = null; if ($(this).children("tbody").length > 0) {//浏览器会自动加tbody标签 $trs = options.trNoHoverClass == "" ? $(this).children().children() : $(this).children().children().not(options.trNoHoverClass); } else { $trs = options.trNoHoverClass == "" ? $(this).children() : $(this).children().not(options.trNoHoverClass); } //滑过行颜色 if (options.trHoverColor != "") { $trs.hover(function () { $(this).addClass("XTableList_trHover"); }, function () { $(this).removeClass("XTableList_trHover"); }); } //单击行颜色 if (options.trClickColor != "") { $trs.click(function () { $trs.removeClass("XTableList_trClick"); $(this).addClass("XTableList_trClick"); }); } //奇偶行颜色 if (options.trEvenColor != "") { $trs.each(function (i) { if (i % 2 == 0) { $(this).addClass("XTableList_trEven"); } }); } if (options.trOddColor != "") { $trs.each(function (i) { if (i % 2 == 1) { $(this).addClass("XTableList_trOdd"); } }); } /******表格样式相关结束****/ /******全选相关开始*****/ //单击全选时 $(options.checkAllClass).click(function () { var $ckAll = $(this).closest(options.tableClass).find(options.checkAllClass); var $ckItem = $(this).closest(options.tableClass).find(options.checkItemClass); if (this.checked) { $ckItem.prop({ "checked": true }); } else { $ckItem.prop({ "checked": false }); } funs.GetCheckBoxIDs($ckAll, $ckItem); }); //单击列表中的checkbox时 $(options.checkItemClass).click(function () { var $ckAll = $(this).closest(options.tableClass).find(options.checkAllClass); var $ckItem = $(this).closest(options.tableClass).find(options.checkItemClass); var flag = 1; $ckItem.each(function () { if (!this.checked) { flag = 0; return false; } }); if (flag == 1) { $ckAll.prop({ "checked": true }); } else { $ckAll.prop({ "checked": false }); } funs.GetCheckBoxIDs($ckAll, $ckItem); }); /******全选相关结束*****/ }); } }); var funs = { Defaults: { tableClass: ".XTableList",//table的class trHoverColor: "#e0ecff",//行滑过时的颜色 trClickColor: "",//单击行后的颜色 trNoHoverClass: ".XTableNoHover",//无需设置颜色的行class trEvenColor: "#f9f9f9",//偶数行的颜色0开始 trOddColor: "",//奇数行的颜色 checkAllClass: ".XTableCheckAll",//全选按钮class checkItemClass: ".XTableCheckItem",//选择框的class checkedTrColor: "#fffec9"//选中行的颜色 }, Init: function (options) { //样式 $("head").append("<style type='text/css'>.XTableList_trHover{background:" + options.trHoverColor + "!important;} " + ".XTableList_trClick{background:" + options.trClickColor + "!important;} " + ".XTableList_trEven{background:" + options.trEvenColor + ";} " + ".XTableList_trOdd{background:" + options.trOddColor + ";}" + ".XTableList_trChecked{background:" + options.checkedTrColor + "!important;}" + "</style>"); //当子项都为选中时,此时选中全选项 $(options.tableClass).each(function () { var $ckAll = $(this).closest(options.tableClass).find(options.checkAllClass); var $ckItem = $(this).closest(options.tableClass).find(options.checkItemClass); var isAllChecked = 1; $ckItem.each(function () { if (!this.checked) { isAllChecked = 0; return false; } }); if (isAllChecked == 1) { $ckAll.prop({ "checked": true }); }else{ $ckAll.prop({ "checked": false }); } funs.GetCheckBoxIDs($ckAll, $ckItem); }); }, //将列表中的checkbox的value的数组形式存到全选的checkbox的value中 GetCheckBoxIDs: function (ckAll, ckItem) { var v = []; ckItem.each(function () { if (this.checked) { $(this).closest("tr").addClass("XTableList_trChecked"); v.push(this.value); } else { $(this).closest("tr").removeClass("XTableList_trChecked"); } }); ckAll.val(v.toString()); } } })(jQuery);
使用说明
$.XTableList({options:optionsValue});
使用示例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="Js/jquery-1.11.1.min.js"></script> <script src="Js/XTableList.js"></script> </head> <body> <table class="XTableList" style="width:100%;"> <tr> <td> <input type="checkbox" value="" class="XTableCheckAll" />全选 </td> <td>ID号</td> <td>姓名</td> <td>年龄</td> <td>备注</td> </tr> <tr> <td> <input type="checkbox" value="1" class="XTableCheckItem" /> </td> <td>ID</td> <td>Name</td> <td>Age</td> <td>Remark</td> </tr> <tr> <td> <input type="checkbox" value="2" class="XTableCheckItem" /> </td> <td>ID</td> <td>Name</td> <td>Age</td> <td>Remark</td> </tr> <tr> <td> <input type="checkbox" value="3" class="XTableCheckItem" /> </td> <td>ID</td> <td>Name</td> <td>Age</td> <td>Remark</td> </tr> <tr> <td> <input type="checkbox" value="4" class="XTableCheckItem" /> </td> <td>ID</td> <td>Name</td> <td>Age</td> <td>Remark</td> </tr> <tr> <td> <input type="checkbox" value="5" class="XTableCheckItem" /> </td> <td>ID</td> <td>Name</td> <td>Age</td> <td>Remark</td> </tr> <tr> <td> <input type="checkbox" value="6" class="XTableCheckItem" /> </td> <td>ID</td> <td>Name</td> <td>Age</td> <td>Remark</td> </tr> </table> <script type="text/javascript"> $(function () { $.XTableList(); }); </script> </body> </html>
相关文章推荐
- jQuery表格插件(隔行换色、划过变色、全选)
- jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
- jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
- jQuery插件实现表格隔行换色且感应鼠标高亮行变色
- jQuery插件实现表格隔行换色且感应鼠标高亮行变色
- JQuery划过表格变色
- javascript表格操作大全:表格排序/倒序、动态添加列、批量删除、删除一行、隔行变色、鼠标悬浮切换背景色、全选/反选。(IE、火狐都兼容)
- jquery实现隔行变色,点击换色,鼠标悬浮当前行变色效果,div+css 细表格样式
- 用JQuery实现表格隔行变色和突出显示当前行的代码
- 基于jQuery的表格特效(隔行、滑动、点击变色)
- JQuery实现表格隔行换色,鼠标移动变色,点击选择变色
- 用JQuery实现表格隔行变色和突出显示当前行的代码
- 实现隔行变色效果升级以及实现表格全选、反选、删除效果
- jquery插件之表格隔行变色并鼠标滑过高亮显示
- JQuery实现表格隔行变色,鼠标经过的行放大显示
- jQuery--过滤选择器实现隔行变色-表单选择器实现全选或全不选
- jQuery 插件 表格高亮显示选中行 全选、反选(四种模式)
- js实现表格隔行变色,鼠标在该行放上移走的变色效果,还有全选,反选等
- jQuery插件实现表格隔行换色且感应鼠标高亮行变色
- 用jQuery实现表格的隔行变色