jQuery实现表格行上移下移和置顶

2015年05月01日 11:34helloweba.com 作者:月光光 标签:jQuery 

我们在操作列表数据的时候,需要将数据行排列顺序进行调整,如上移和下移行,将行数据置顶等,这些操作都可以在前端通过点击按钮来完成,并且伴随着简单的动态效果,轻松实现表格数据排序。

HTML

页面上是一个简单的数据表格,我们在数据行中分别放置“上移”,“下移”和“置顶”三个链接,并且分别定义三个class属性,我们来通过jQuery实现这些操作。

<table class="table">
	<tr>
		<td>HTML5获取地理位置定位信息</td>
		<td>2015-04-25</td>
		<td><a href="#" class="up">上移</a> <a href="#" class="down">下移</a> <a href="#" class="top">置顶</a></td>
	</tr>
	<tr>
		<td>CSS+Cookie实现的固定页脚广告条置顶</a></td>
	</tr>
	...
</table>

jQuery

我们需要预先把jQuery库文件载入,然后分别绑定上移、下移和置顶三个操作的click事件。以“上移”为例,当点击时,获取当前点击的行内容,及tr,然后判断该行是不是第一行,如果不是第一行,那么就将该行插入到上一行的前面,实现了互换的目的。当然我们可以给行加fadeOut()和fadeIn()过渡效果,这样看起来会更生动些,否则上移的过程会一闪而过。“下移”和“置顶”操作流程都差不多,请看代码:

$(function(){
	//上移
	var $up = $(".up")
    $up.click(function() {
        var $tr = $(this).parents("tr");
        if ($tr.index() != 0) {
			$tr.fadeOut().fadeIn();
			$tr.prev().before($tr);
			
        }
    });
    //下移
    var $down = $(".down");
    var len = $down.length;
    $down.click(function() {
        var $tr = $(this).parents("tr");
        if ($tr.index() != len - 1) {
			$tr.fadeOut().fadeIn();
            $tr.next().after($tr);
        }
    });
	//置顶
	var $top = $(".top");
	$top.click(function(){
		var $tr = $(this).parents("tr");
		$tr.fadeOut().fadeIn();
		$(".table").prepend($tr);
		$tr.css("color","#f60");
	});
});

当然,实际应用中应该结合您的项目,在操作“上移”,“下移”和“置顶”完成时,应该和后台程序进行Ajax异步交互,保证排序数据真正被后台记录,然后刷新后会展示新的排序结果,本文不再对该异步操作做详细解说,就此结题。

声明:本文为原创文章,helloweba.net和作者拥有版权,如需转载,请注明来源于helloweba.net并保留原文链接:https://www.helloweba.net/javascript/301.html

8条评论

  • 这个只是交互的效果,数据库表的数据还需要用ajax去操作,很简单的把参数带过去就可以了。。。

  • 有个bug,置顶了的条目会被非置顶的条目给刷下去,实际不应如此。

  • 你好!看到你的代码很整洁,但为什么不继续教我们---“和后台程序进行Ajax异步交互,保证排序数据真正被后台记录”呢?因为我急需要这样的,所以送佛送到西,麻烦教教我,不甚感激!

  • 请不要使用代理下载

  • 无法下载源码,提示:Access Denied

  • AJAX调用程序去改变排序值

  • 同上

  • niu B 这个功能 如何 结合这 后台 置顶后 刷新 依然 是第一位