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 相关文章推荐
制作特殊字的脚本
Jun 26 Javascript
JavaScript 输入框内容格式验证代码
Feb 11 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
Sep 03 Javascript
jQuery事件用法实例汇总
Aug 29 Javascript
简介JavaScript中的setDate()方法的使用
Jun 11 Javascript
js中遍历Map对象的简单实例
Aug 08 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
浅谈React中组件间抽象
Jan 27 Javascript
详解vue-router导航守卫
Jan 19 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
vuex state中的数组变化监听实例
Nov 06 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
php简单静态页生成过程
2008/03/27 PHP
php mysql数据库操作分页类
2008/06/04 PHP
PHP 截取字符串专题集合
2010/08/19 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
js最简单的拖拽效果实现代码
2010/09/24 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
Python学习资料
2007/02/08 Python
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python写入xml文件的方法
2015/05/08 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python中is与==判断的区别
2017/03/28 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
几个Shell Script面试题
2014/04/18 面试题
科室工作的个人自我评价
2013/10/30 职场文书
人民教师求职自荐信
2014/03/12 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
本科应届生自荐信
2014/06/29 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
违纪开除通知书
2015/04/25 职场文书
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers