- 浏览: 28076 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
51xvf:
ChinaCoder前端开发教你轻松开发JQuery插件 -
bbwodni:
呵呵!3Q,感觉还可以!
手把手教你 ,spring定时发送邮件
//************************************************************************************************
// 说明:用于把Table转为可排序的Table
//
// 使用:1、给设置标题行添加名自定义属性role="head" 给不排序的底部设置为role="bottom"
// 2、标题行中需要排序的列添加自定义属性sort="true"
// 3、调用扩展方法,如:$("#tableId").sorttable();
//
// 参数:JSON格式
// ==普通参数==
// sorttingMsg: 排序时显示的文字(默认为"排序中……"),
// sorttingMsgColor: 排序时显示的文字的颜色(默认为"#FFF"),
// allowMask: 是否允许遮罩层(默认为true),
// maskOpacity: 遮罩层的透明度(默认为"0.5"),
// maskColor: 遮罩层的颜色(默认为"#000"),
// ascImgUrl: 升序图片(默认为不显示),
// ascImgSize: 升序图片大小(默认为"8px"),
// descImgUrl: 降序图片(默认为不显示),
// descImgSize: 降序图片大小(默认为"8px")
//
// ==回调函数==
// onSorted(cell): 排序完成回调函数(参数:cell,当前排序列的头(一般是th或者td的jquery对象))
//*************************************************************************************************
(function($) {
$.fn.extend({
sorttable: function (setting) {
// 配置参数
var configer = $.fn.extend({
// 属性
sorttingMsg: "排序中……",
sorttingMsgColor: "#FFF",
allowMask: true,
maskOpacity: "0.5",
maskColor: "#000",
ascImgUrl: "",
ascImgSize: "8px",
descImgUrl: "",
descImgSize: "8px",
// 事件
onSorted: null // 排序完成回调函数
}, setting);
// 获取扩展对象
var extObj = $(this);
// 用于锁住当前操作的对象
var lock = false;
// 排序属性的可取值
var sortOrder = {
byAsc: "asc",
byDesc: "desc"
};
// 自定义属性名
var myAttrs = {
order: "order",
by: "by",
sort: "sort"
};
// 可排序行的头列(jquery对象——集合)
var headCells = extObj.find("tr[role='head']>[" + myAttrs.sort + "='true']");
headCells.each(function () {
if (configer.ascImgUrl != "" && configer.descImgUrl != "") {
$(" <img class='asc' src='" + configer.ascImgUrl + "' style='width:" + configer.ascImgSize + "; height:" + configer.ascImgSize + ";display:none;' title='升序' alt='升序'/>").appendTo($(this));
$(" <img class='desc' src='" + configer.descImgUrl + "' style='width:" + configer.descImgSize + "; height:" + configer.descImgSize + ";display:none;' title='降序' alt='降序'/>").appendTo($(this));
}
else {
$(" <span class='asc' style='width:12px; height:12px;display:none;' title='升序'>v</span>").appendTo($(this));
$(" <span class='desc' style='width:12px; height:12px;display:none;' title='降序'>^</span>").appendTo($(this));
}
$(this).css("cursor", "hand");
});
// 设置头列点击事件
headCells.click(function () {
var thisCell = $(this);
if (lock == false) {
lock = true; // 锁事件
if (configer.allowMask) {
var tw = extObj.outerWidth();
var th = extObj.outerHeight();
var tOffSet = extObj.offset();
var tTop = tOffSet.top;
var tLeft = tOffSet.left;
// 添加遮罩层
var mark = $("<div></div>").attr("id", "TableSort_Mark").css("background-color", configer.maskColor).css("position", "absolute").css("top", tTop + "px").css("left", tLeft + "px").css("opacity", configer.maskOpacity).css("z-index", "9999").css("width", tw + "px").css("height", th + "px");
mark.html("<h3 id='TableSort_Sortting' style='opacity:1;color:" + configer.sorttingMsgColor + ";padding:36px 0 0 0;text-align:center;'>" + configer.sorttingMsg + "</h3>");
mark.appendTo($("body"));
// 延时执行排序方法,显示遮罩层需要时间~
window.setTimeout(function () {
// 设置列排序
SetColumnOrder(thisCell);
// 触发排序完成回调函数
FireHandleAfterSortting(thisCell);
// 解锁,撤销遮罩层
lock = false;
mark.remove();
}, 100);
}
else {
// 设置列排序
SetColumnOrder(thisCell);
// 触发排序完成回调函数
FireHandleAfterSortting(thisCell);
// 解锁,撤销遮罩层
lock = false;
}
// 所有头部的列的排序标记设置为false
headCells.attr(myAttrs.order, false);
// 被点击列的排序标志设置为true
thisCell.attr(myAttrs.order, true);
// 设置排序列的排序规则
var by = thisCell.attr(myAttrs.by);
thisCell.attr(myAttrs.by, (by == sortOrder.byAsc ? sortOrder.byDesc : sortOrder.byAsc));
}
});
//====================================
// 说明:触发排序完成回调函数
// 参数:sortCell = 当前排序的列头
//------------------------------------
function FireHandleAfterSortting(sortCell) {
if (configer.onSorted != null) {
configer.onSorted(sortCell);
}
}
//====================================
// 说明:设置列排序
// 参数:headCell = 列头(jquery对象)
//------------------------------------
function SetColumnOrder(headCell) {
var by = headCell.attr(myAttrs.by);
extObj=headCell.parents("table");//当有多个table时要,重新查找到当前点击的table
// headCells=extObj.find("tr[role='head']>[" + myAttrs.sort + "='true']");
headCells=extObj.find("tr[role='head'] th");
var index = headCells.index(headCell);
var rs = extObj.find("tr[role!='head'][role!='bottom']");
rs.sort(function (r1, r2) {
var a = $.trim($(r1).children("td").eq(index).text());
var b = $.trim($(r2).children("td").eq(index).text());
if (a == b) {
return 0;
}
var isDt = IsTime(a) && IsTime(b);
if (isDt) {
var dt1 = new Date(a.replace(/-/g, "/"));
var dt2 = new Date(b.replace(/-/g, "/"));
if (dt1.getTime() > dt2.getTime()) {
return (by == sortOrder.byAsc) ? 1 : -1;
}
else {
return (by == sortOrder.byAsc) ? -1 : 1;
}
}
else if (isNaN(a) || isNaN(b)) {
return (by == sortOrder.byAsc) ? a.localeCompare(b) : b.localeCompare(a);
}
else {
if (a - b > 0) {
return (by == sortOrder.byAsc) ? 1 : -1;
}
else {
return (by == sortOrder.byAsc) ? -1 : 1;
}
}
});
extObj.find("tr[role!='head'][role!='bottom']").remove();
//判断是否有bottom,不然显示有问题
if(extObj.find("tr[role='bottom']").html()==null){
extObj.append(rs);
}else{
extObj.find("tr[role='bottom']").before(rs);
}
// 显示箭头排序列图标
headCells.children(".asc,.desc").hide();
if (by == sortOrder.byAsc) {
headCell.children(".asc").show();
}
else {
headCell.children(".desc").show();
}
}
//================================================
// 说明:判断字符串是否是时间
//------------------------------------------------
function IsTime(dateString) {
dateString = $.trim(dateString);
if (dateString == null && dateString.length == 0) {
return false;
}
dateString = dateString.replace(/\//g, "-");
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = dateString.match(reg);
if (r == null) {
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
var r = dateString.match(reg);
}
return r != null;
}
}
});
})(jQuery);
- tableSort-jquery.rar (58.7 KB)
- 下载次数: 75
发表评论
-
jquery可移动的弹窗
2015-02-12 21:12 696<!DOCTYPE html> <htm ... -
ChinaCoder前端开发教你轻松开发JQuery插件
2013-11-21 22:01 771前端开发中写Javascript ... -
《转》JavaScript世界的一等公民 - 函数
2013-06-15 19:23 562简介 在很多传统语言(C/C++/J ... -
左右选择添加、删除
2013-02-28 13:00 742左右选择添加、删除菜单内容。运行后的效果图片: ... -
《转》DOCTYPE声明对JS获取窗口宽度和高度的影响
2011-07-27 18:04 807在没有DOCTYPE声明的情况下: document ... -
《转》利用JavaScript破解验证码
2011-03-29 12:33 855如今,基于web的应用 ... -
jQuery插件的开发
2011-03-19 12:19 695jQuery插件的开发包括两种: 一种是类级别的插件开发,即 ... -
JavaScript[对象.属性]集锦
2011-03-10 17:48 820因为这两篇太安逸了,东西很多,很实用,所以转到我格子里!总的来 ... -
JQuery学习文档pdf+chm
2009-08-11 18:49 3140最近学习javaScript,越来越发现JQuery是个 ...
相关推荐
本文将详细探讨"jQuery表格排序插件"这一主题,结合提供的标签和压缩包文件名称,我们可以推测这是一个包含源码、示例、样式和图像资源的完整插件包。 首先,让我们来理解jQuery表格排序插件的核心功能。此类插件...
本篇文章将深入探讨“jQuery表格排序插件”的使用和原理。 首先,jQuery表格排序插件如“jquery.table.sort.js”旨在为HTML表格添加排序功能,使用户可以点击表头来按升序或降序排列相应列的数据。这种功能对于数据...
### Jquery表格排序插件详解:tableSort #### 插件概述 Jquery表格排序插件,名为tableSort,由作者wjy开发于2010年12月,主要功能是提供对HTML表格数据的排序操作,支持快速排序及复杂排序算法。此插件通过Jquery...
这是一款仿Excel样式的jquery表格排序插件。该jquery表格排序插件基于bootstrap表格,它表格列支持按英文字母或数字的升序和降序排列,支持在表格列中按关键字进行搜索,支持过滤不需要的表格列。
2. **jQuery表格排序插件**: "jquery.tablesorter.js"是这个插件的主要实现文件,它扩展了jQuery的功能,提供了表格数据的自动排序功能。用户只需将此插件应用到表格上,即可实现表格列的点击排序。"jquery....
#### 知识点一:jQuery表格排序插件介绍 在Web开发中,数据展示经常需要通过表格的形式呈现给用户,并且为了方便用户查找所需信息,通常会提供排序功能。传统的表格排序往往需要后端的支持,但这种方式可能会增加...
Tablesorter 是一个用来直接在浏览器上对表格数据进行排序的jQuery插件,无需再次刷新页面,支持多种单元格数据类型,例如数值、字符串、日期和自定义排序。主要的特点包括:多列排序支持文本、URL地址、数值、IP...
摘要:脚本资源,jQuery,表格排序插件, jquery表格插件 jquery.table.sort.js-jquery表格排序插件,不管是双击表头的哪一个标题,数据都会按照点击的表头进行排序,以一个活动列表来演示如何为表格排序,这里请注意,...
总结来说,blueTable是一款轻量级、易于使用的jQuery表格排序插件,它的出现为网页开发者提供了一种快速构建交互式表格的强大工具。通过合理的配置和扩展,blueTable不仅可以满足基础的排序需求,还能适应各种复杂...
Tablesorter 是一个用来直接在浏览器上对表格数据进行排序的jQuery插件,无需再次刷新页面,支持多种单元格数据类型,例如数值、字符串、日期和自定义排序。 主要的特点包括: •多列排序 •支持文本、URL地址、...
Stupid Table 是一个实现对表格进行列数据排序的 jQuery 插件,支持多种数据类型的排序,包括数值、字符串等。 标签:Stupid
DataTables是一款基于jQuery库的强大的表格插件,它极大地增强了HTML表格的功能,提供了丰富的排序、搜索、分页、列操作等交互性功能。这个插件的设计目标是为开发者提供一个高度可定制、易于使用的工具,使得网页上...
jQuery表格分页排序插件,如“SlimTable”,在网页开发中扮演着重要角色,尤其在处理大量数据展示时。这种插件能够有效地提升用户体验,因为它允许用户仅查看和操作他们关心的部分数据,而不是一次性加载所有信息。...
jQuery分页排序插件是前端开发中常用的工具,它极大地提升了网页数据展示的用户体验,尤其在处理大量数据时。这款插件允许用户对HTML结构进行排序、分页和过滤,无需复杂的后端处理,减轻了服务器负担,同时也提高了...
**jQuery表格树插件详解** 在网页开发中,表格数据的展示经常需要处理大量结构化的信息,而将这些数据组织成树形结构可以更清晰地展现层级关系,提高用户的浏览体验。`jQuery表格树插件`就是为此目的设计的工具,它...
jQuery表格排序通常借助于插件来实现,其中一个著名的插件就是`tablesorter`。`tablesorter`是一个轻量级、高度可定制的插件,它能够为HTML表格提供排序功能,支持各种复杂的排序规则,如数字、日期、字母顺序等。 ...
在本主题“jQuery表格插件仿Excel表格排序修改效果”中,我们将深入探讨如何利用jQuery实现类似Excel的表格排序功能,并对其进行优化和定制。 首先,我们需要了解jQuery表格插件的基础。常见的jQuery表格插件有...
在网页开发中,jQuery是一个非常...总结,jQuery表格排序是一个实用的功能,通过插件或者自定义代码,可以为用户提供友好的数据浏览体验。在实际开发中,应根据项目需求选择合适的方法,并注重性能优化和用户体验设计。