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 delete操作符应用实例
Jan 13 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
Mar 16 Javascript
js 实现复制到粘贴板的功能代码
May 13 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
Jun 29 Javascript
jquery实现控制表格行高亮实例
Jun 05 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
Apr 17 Javascript
JS简单随机数生成方法
Sep 05 Javascript
js实现文字选中分享功能
Jan 25 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
Jun 19 Javascript
VUE实现表单元素双向绑定(总结)
Aug 08 Javascript
vue登录注册及token验证实现代码
Dec 14 Javascript
使用post方法实现json往返传输数据的方法
Mar 30 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
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
php session劫持和防范的方法
2013/11/12 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
Python做智能家居温湿度报警系统
2018/09/25 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
简述python&amp;pytorch 随机种子的实现
2020/10/07 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
html5图片上传预览示例分享
2014/04/14 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
电钳专业个人求职信
2014/01/04 职场文书
十八大闭幕感言
2014/01/22 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
产品开发计划书
2014/04/27 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
行政处罚告知书
2015/07/01 职场文书
思想工作总结范文
2015/08/12 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏