JS实现一个列表中包含上移下移删除等功能


Posted in Javascript onSeptember 24, 2014

最近做了一个项目,包括了一个列表页,为了用户体验,操作均使用JS实现,其中包括在列表中实现上移,下移,删除等功能,前台JS,后端数据修改使用AJAX,本文主要说一下前台JS这块

先看一下页面的截图
JS实现一个列表中包含上移下移删除等功能

看一下它的HTML结构,当然,这与前台切图有关,后端程序人员只负责写自己的JS这块,我以我们项目为例,看一下它们切的HTML

<ul class="clearfix">
<li class="courseList">
<div class="titDefault clearfix">
<div class="left clearfix">
<span class="dragBtn"></span><span class="tit">内容<em class="contIndex">1</em>:</span><em title="2013年 加班.txt" class="titDefaultName">2013年 加班.txt</em>
</div>
<div class="mid">2014/9/24 9:54:00</div>
<div class="right clearfix">
<a value="253040" class="moveUpBtn" href="javascript:;"><span class="delTit">上移</span></a>
<a value="253040" class="moveDownBtn" href="javascript:;"><span class="delTit">下移</span></a>
<a value="253040" class="deleteBtn" href="javascript:;"><span class="delTit">删除</span></a>
</div>
</div>
</li>
<li class="courseList">
<div class="titDefault clearfix">
<div class="left clearfix">
<span class="dragBtn"></span><span class="tit">内容<em class="contIndex">2</em>:</span><em title="使用说明.txt" class="titDefaultName">使用说明.txt</em>
</div>
<div class="mid">2014/9/24 9:54:00</div>
<div class="right clearfix">

<a value="253041" class="moveUpBtn" href="javascript:;"><span class="delTit">上移</span></a>
<a value="253041" class="moveDownBtn" href="javascript:;"><span class="delTit">下移</span></a>
<a value="253041" class="deleteBtn" href="javascript:;"><span class="delTit">删除</span></a>
</div>
</div>
</li>
<li class="courseList">
<div class="titDefault clearfix">
<div class="left clearfix">
<span class="dragBtn"></span><span class="tit">内容<em class="contIndex">3</em>:</span><em title="占占大师.txt" class="titDefaultName">占占大师.txt</em>
</div>
<div class="mid">2014/9/24 9:54:00</div>
<div class="right clearfix">
<a value="253040" class="moveUpBtn" href="javascript:;"><span class="delTit">上移</span></a>
<a value="253040" class="moveDownBtn" href="javascript:;"><span class="delTit">下移</span></a>
<a value="253040" class="deleteBtn" href="javascript:;"><span class="delTit">删除</span></a>
</div>
</div>
</li>
<li class="courseList">
<div class="titDefault clearfix">
<div class="left clearfix">
<span class="dragBtn"></span><span class="tit">内容<em class="contIndex">4</em>:</span><em title="排序问题.txt" class="titDefaultName">排序问题.txt</em>
</div>
<div class="mid">2014/9/24 9:54:00</div>
<div class="right clearfix">

<a value="253041" class="moveUpBtn" href="javascript:;"><span class="delTit">上移</span></a>
<a value="253041" class="moveDownBtn" href="javascript:;"><span class="delTit">下移</span></a>
<a value="253041" class="deleteBtn" href="javascript:;"><span class="delTit">删除</span></a>
</div>
</div>
</li>
</ul>

下面我们主要看一下JS代码,主要使用JQ的on方法实现的,原因是因为列表的数据有第一次为静态的(bind),当排序后,数据变为动态的(live),所以,这种结构只能使用on才最合理,看一下代码

<script type="text/ecmascript">
$(function () {
//上移
$(".clearfix").on("click", ".moveUpBtn", function () {
var self = $(this);
var _old = self.closest("li.courseList");
var _new = self.closest("li.courseList").prev("li");
if (_new.length > 0) {
var _temp = _old.html();
_old.empty().append(_new.html());
_new.empty().append(_temp);
}

});

//下移
$(".clearfix").on("click", ".moveDownBtn", function () {
var self = $(this);
var _old = self.closest("li.courseList");
var _new = self.closest("li.courseList").next("li");
if (_new.length > 0) {
var _temp = _old.html();
_old.empty().append(_new.html());
_new.empty().append(_temp);
}
});

//删除
$(".clearfix").on("click", ".deleteBtn", function () {
var self = $(this);//当前click事件源对象
self.closest("li.courseList").remove();
});

});
</script>

运行之后,效果就出来了,本JS中没有把与后台交互的AJAX方法写出来,大家可以根据具体情况而定。

Javascript 相关文章推荐
javascript函数以及基础写法100多条实用整理
Jan 13 Javascript
js的隐含参数(arguments,callee,caller)使用方法
Jan 28 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
详解JavaScript中setSeconds()方法的使用
Jun 11 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
JS简单获取及显示当前时间的方法
Aug 03 Javascript
微信小程序 Flex布局详解
Oct 09 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
CentOS环境中MySQL修改root密码方法
Jan 07 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
Mar 15 Javascript
vue实现打印功能的两种方法
Sep 07 Javascript
JS 5种遍历对象的方式
Jun 16 Javascript
一个JavaScript函数把URL参数解析成Json对象
Sep 24 #Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
Sep 24 #Javascript
JavaScript设计模式之单例模式实例
Sep 24 #Javascript
JavaScript中实现异步编程模式的4种方法
Sep 24 #Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
Sep 24 #Javascript
JavaScript获取图片真实大小代码实例
Sep 24 #Javascript
再探JavaScript作用域
Sep 24 #Javascript
You might like
一个目录遍历函数
2006/10/09 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
js的event详解。
2006/09/06 Javascript
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
Bootstrap基本组件学习笔记之进度条(15)
2016/12/08 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
JS实现移动端判断上拉和下滑功能
2017/08/07 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python中自定义函数的教程
2015/04/27 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
Python反转序列的方法实例分析
2018/03/21 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
公务员爱岗敬业心得体会
2016/01/25 职场文书
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python