html 拖拽选择表格,实例:使用jQuery插件TableDnD拖放HTML表(table)行

HTML表(table)是显示数据的首选UI选项,排序、分页和搜索/过滤是具有大量数据的任何HTML表的必备功能,这些功能使HTML表格对最终用户而言更加友好且高效。在某些情况下,可能需要HTML表行的拖放功能,不幸的是,jQuery本身并不具备这个功能。为了实现这一点,我们需要使用一个名为TableDnD的jQuery插件。在这篇文章中,我们将学习如何使用jQuery插件TableDnD实现拖放HTML表(table)行。

注意:该插件在Firefox浏览器(58.0.1)测试无效,在Chrome、360、IE9测试均有效。

测试该插件在你的浏览器是否有效,点击下面的演示按钮。

实例1:最简单的TableDnD使用方法

引用TableDnD插件

使用TableDnD,需要下载一个js文件:jquery.tablednd.js,此文件包含在本文源码下载包里。

要使用TableDnD,还要先引用jQuery库文件,我们可以从百度公共库里引用该文件。

所以代码如下:

使用表格(table)

在页面上创建一个标准的HTML表格,如:

1One text1
2Two text2
3Three text3
4Four text4
5Five text5
6Six text6

编写jQuery程序

该插件仅依赖于jQuery库,因此务必先引用jQuery库文件,然后再引用TableDnd插件库文件jquery.tablednd.js。

要实现基本功能,请在table元素上调用tableDnd()函数,像这样:

$(document).ready(function() {

//初始化表

$("#table-1").tableDnD();

});

注意这个 #table-1 是表格(table)的id。

这样,该表格(table)行(tr)就可以拖放了。效果图如下:

988e8ac4a972ad7e7497149775374d19.gif

拖放表格(table)行(tr)

实例2:使用颜色样式美化表行拖放效果

实例1主要是介绍该插件的使用方法,是最简单的使用。但是,从用户的使用角度来看,体验不算太好,因为拖放时表行没有颜色的区分,看得眼睛比较累。因此,本实例着重介绍如何使用颜色样式美化表行拖放效果。我们先来看一看效果图:

630e1f8384576ce0e6231305ca10ced1.gif

使用颜色样式美化表行拖放效果

这样看就好很多了吧。下面介绍使用方法。

HTML标记

首先,在页面上创建一个标准的HTML表格。对于此演示,我们的表有3列:name,age和country,以及一些随机数据。

NameAgeCountry
Maria Anders30Germany
Francisco Chang24Mexico
Roland Mendel60Austria
Helen Bennett28UK
Yoshi Tannamuri35Canada
Giovanni Rovelli46Italy
Narendra Sharma56India
Alex Smith59USA

CSS

以下CSS类用于设置表及其行的样式。myDragClass CSS类是需要拖放的行设置样式。此样式将在拖动期间应用,然后在删除行时删除。

table {

font-family: arial, sans-serif;

border-collapse: collapse;

width: 100%;

}

td,

th {

border: 1px solid #dddddd;

text-align: left;

padding: 8px;

}

th {

background-color: #dddddd;

}

.even {

background-color: #ecf6fc;

}

.odd {

background-color: #ddeedd;

}

.myDragClass {

background-color: yellow;

font-size: 16pt;

}

.nodrag {

background-color: red;

}

.nodrop {

background-color: lightblue;

}

jQuery代码

正如前面所提到的,TableDnd插件将用于实现此功能。此插件允许用户重新排序表中的行。关于这个插件的好处是它没有考虑行内的单元格数或包含表单元素的行。

$(document).ready(function() {

$("#tblData").find("tr:even").addClass("even");

$("#tblData").find("tr:odd").addClass("odd");

$("#tblData").tableDnD({

onDragClass: "myDragClass",

onDrop: function(table, row) {

$("#tblData").find("tr").removeClass("even odd");

$("#tblData").find("tr:even").addClass("even");

$("#tblData").find("tr:odd").addClass("odd");

}

});

});

代码中 #tblData 是表格的id。

禁止某些行不能被拖放

TableDnd插件有一个比较好的功能,那就是可以禁止某些行不能被拖放。如实例2的效果图所示,红色行是不能被拖动的。

要实现此功能,其实很简单,我们只需在table的tr代码里加上一个叫noDrag的类即可,如前面实例2的table代码这几行:

Narendra Sharma56India

实例3:漂亮的table行拖放样式

下面介绍一个漂亮的table行拖放样式,效果图如下:

99dbf8d33f25616c6ab01ff8158547c8.gif

漂亮的table行拖放样式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值