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和CSS速查手册
Aug 20 Javascript
动态创建的表格单元格中的事件实现代码
Dec 30 Javascript
Javascript中的var_dump函数实现代码
Sep 07 Javascript
node.js中的dns.getServers方法使用说明
Dec 08 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
Sep 25 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
图片懒加载imgLazyLoading.js使用详解
Sep 15 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
Nov 21 Javascript
vue-router beforeEach跳转路由验证用户登录状态
Dec 26 Javascript
小程序实现上下移动切换位置
Sep 23 Javascript
解决vue admin element noCache设置无效的问题
Nov 12 Javascript
jquery实现简单自动轮播图效果
Jul 29 jQuery
一个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安全性问题中的:Null 字符问题
2013/06/21 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
jquery网页加载进度条的实现
2017/06/01 jQuery
JS简单实现数组去重的方法分析
2017/10/14 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python zip文件 压缩
2008/12/24 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
python中logging包的使用总结
2018/02/28 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
荟萃全球保健品:维他购
2018/05/09 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
公司培训欢迎词
2014/01/10 职场文书
学生保证书范文
2014/04/28 职场文书
委托书格式要求
2015/01/28 职场文书
golang中的空接口使用详解
2021/03/30 Python
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技