sTable - 一个支持子表、单元格合并、链式调用、事件代理功能的Mini表格组件
2012-12-21 13:15
399 查看
因为项目开发需要,所以开发了此Mini表格组件,暂时不依赖第三方库,比较轻量级,并且支持子表、单元格合并、链式调用、事件代理功能。
演示地址:http://sandbox.runjs.cn/show/ihwmi3yt
在线源码:http://runjs.cn/code/ihwmi3yt
Github:https://github.com/guananddu/sTable
网盘:http://dl.vmall.com/c0aw4lauhu
感兴趣的话可以直接拿来使用。:) 演示见下:
1,子表:
现在只支持一级子表,如下截图:
需要更多的子表的话,只能扩展函数本身了。
2,单元格合并:
单元格合并要在初始化的时候进行设置,详见源代码:
3,链式调用和事件代理:
演示地址:http://sandbox.runjs.cn/show/ihwmi3yt
在线源码:http://runjs.cn/code/ihwmi3yt
Github:https://github.com/guananddu/sTable
网盘:http://dl.vmall.com/c0aw4lauhu
感兴趣的话可以直接拿来使用。:) 演示见下:
1,子表:
现在只支持一级子表,如下截图:
需要更多的子表的话,只能扩展函数本身了。
2,单元格合并:
单元格合并要在初始化的时候进行设置,详见源代码:
// 设置子表单元格合并等信息 sFormatMore: [ { // 第一列为竖向和并列 rowSpan: true }, { // 第二列横跨父表格2个格 colSpan: '2' }, {}, { rowSpan: true } ]
3,链式调用和事件代理:
// 生成构造函数 var myTableConstructor = sTable(preOpt); // 表格初始化 var meTable = new myTableConstructor(conOpt); // 渲染 meTable.setData(data).render() /** * 表格的事件代理机制 */ // 可以通过自身的on函数进行特殊的事件绑定 // 1,为展开/闭合子表格添加自定义事件 .on('click', 'sub-icon', function() { var target = this; // 可以通过target中的data属性得到当前表格的索引 var data = target.getAttribute('data'); var x = data.split('-')[0]; var y = data.split('-')[1]; // x 行数索引,y 列说索引(都是从0开始) console.log(x, y); }) // 2,在位其它目标元素添加事件代理的时候需要为其加上'_stabletarget_'属性,表明事件target是什么 .on('mouseover', 'linecheckbox', function() { this.setAttribute('title', '点我吧!'); this.parentNode.style.backgroundColor = 'pink'; }) .on('mouseout', 'linecheckbox', function() { this.setAttribute('title', ''); this.parentNode.style.backgroundColor = '#EFEFEF'; }) .on('click', 'linecheckbox', function() { // 去掉全选 if(!this.checked) { meTable.getStableTargetEles('lefttopcheckbox', function(item, inx, arr) { item.checked = false; }) } else { // 注意全选 var allChecked = true; this.checked && meTable.getStableTargetEles('linecheckbox', function(item, inx, arr) { !item.checked && (allChecked = false); }); allChecked && meTable.getStableTargetEles('lefttopcheckbox', function(item, inx, arr) { item.checked = true; }); } }) // 3,通过表格的getStableTargetEles方法,获取指定'_stabletarget_'值的元素列表 .on('click', 'lefttopcheckbox', function() { var target = this; // 使用内置迭代器 // meTable.getStableTargetEles('linecheckbox', function(item, inx, arr) { // console.log(inx); // item.checked = target.checked; // }); // 不使用内置迭代器 meTable.getStableTargetEles('linecheckbox', function(all) { console.log(all); // 不使用内置迭代器的话,自定义循环语句 for(var i = 0, len = all.length; i < len; all[i ++].checked = target.checked){} }, false); });
相关文章推荐
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- 通用权限管理系统组件 (GPM - General Permissions Manager) 给信息管理系统加一个初始化的功能,调用存储过程
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- 通用权限管理系统组件 给信息管理系统加一个初始化的功能,调用存储过程
- 使用ASPOSE.WORD组件,在word文档指定的位置动态生成表格,支持单元格合并及背景填充
- 【商业版、提供全部源码】1000元RMB购买走火入魔C#.NET精品即时通讯组件功能源码的老大哥哥今天很高兴,还特意表扬了程序很强大、很好用、支持局域网、支持广域网
- Python高级 -- 12 mini_frame框架添加路由、路由支持正则、Log日志功能
- 通用权限管理系统组件 (GPM - General Permissions Manager) 自己动手只能写一个轻量级的权限系统了功能也不强大,这不是白白流血流汗吗?
- 微信公众平台php开发包,细化各项接口操作,支持链式调用,欢迎Fork此项目
- 【jquery】toggle不支持事件代理的解决办法或者 jquery live绑定toggle
- 基于JDK动态代理实现的接口链式调用(Fluent Interface)工具
- element UI table表格组件使用[超级完整功能]
- 调用一个UITableview的一个代理的方法,实现UITableview重载
- 一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
- Android 调用平台功能 - 启动浏览器 支持file://
- 用户控件包含一个搜索功能,但是在调用页面中按回车时无法直接提交这个表单,只有鼠标点击才提交,如何解决?