一直为项目采用何种RIA实现方式困扰,否定了flex,ext之后,终于选定了JQuery。理由么,JQuery并没有大量的封装javascript,迫使使用者需要系统的学习JQuery API,而是通过对DOM对象增强+API的方式工作。这样传统的javascript代码和HTML标签可以很好的与JQuery并存,并不用大面积的修改。
在JQuery的基础上进行开发也很方便,比传统javascript可以节省不少代码量。只不过捏,以前过于习惯于IE标准,这回要完全按照DOM标准写Javascript,很多原来习惯的用法不能用了,有点郁闷,呵呵。
这两天写了不少控件,贴出使用说明来秀秀。
统计函数
统计函数可以用来统计指定HTML元素中值(值指经过转换后的innerText属性)的总和,比如对表格中行或列的统计。
语法:
$(选择器).sum([转换回调函数])
示例:
1:当元素中的值为数字时的使用方法,下例统计了表格中第2列的总和
$('table tbody tr td:nth-child(2)').sum()
2:当元素中的值为其他类型时的使用方法,下例统计了表格中第3列中内容为“男”的总和
$('table tbody tr td:nth-child(4)').sum(function(n){if (n=='男') return 1; else return 0;})
注意:
转换回调函数参数为统计元素的内容,返回值必须为数值类型。
已知Bug:
无
表格控件
表格控件用来增强HTML表格功能,目前支持隔行换色,鼠标悬停,排序,调整表格大小等功能。
语法:
makeTable(DIV的id属性);
示例:
makeTable("div")
HTML标签:
<div id="div" style="width:500px;padding:0px" resizable="true" stripe="true" hover="true">
<table width="100%">
<thead>
<tr>
<th sort="true">姓名</th>
<th sort="number">年龄</th>
<th sort="date">生日</th>
<th sort="true">性别</th>
<th >操作</th>
</tr>
</thead>
<tbody>
…… …… 表格数据部分 …… ……
</tbody>
</table>
</div>
注意:
必须将<TABLE>放在<DIV>中进行使用。<TABLE>中如果存在标题行必须使用<THEAD>和<TH>标签
表格控件通过扩展HTML元素的属性来进行设置,说明如下
DIV元素中的属性:
resizable : 是否支持调整大小,默认不支持
stripe : 是否支持隔行换色,默认不支持
hover : 是否支持鼠标悬停,默认不支持
TH元素中的属性:
sort : 是否进行排序,值可为true(字符串格式排序),number(数字格式排序),date(日期格式排序),默认不排序
已知Bug:
如果启动了隔行换色,则当手工调整单元行(<TR>)的顺序,或删除、添加单元行时,不会重新进行渲染,需要再次调用一遍makeTable方法。此时不会记忆原排序的参数(当前排序列,正序还是倒序)
表格排序后,如果单元格内容发生改变,无法自动进行排序,需要重新点击可排序的标题行。
排序功能目前仅支持IE浏览器,其他功能可以跨浏览器运行。
调整大小Handle图标有时显示位置不正常,但不影响正常使用。
在不同浏览器中,调整大小功能的表现会有一些差别。
验证控件
验证控件用来对FORM表单的元素进行验证,并提示验证结果。