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 相关文章推荐
document.open() 与 document.write()的区别
Aug 13 Javascript
jQuery插件的写法分享
Jun 12 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
微信js-sdk界面操作接口用法示例
Oct 12 Javascript
Vue封装一个简单轻量的上传文件组件的示例
Mar 21 Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
May 08 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
探索浏览器页面关闭window.close()的使用详解
Aug 21 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产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
FCK调用方法..
2006/12/21 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
python利用sklearn包编写决策树源代码
2017/12/21 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
为什么group by 和order by会使查询变慢
2014/05/16 面试题
难忘的一天教学反思
2014/04/30 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
python小程序之飘落的银杏
2021/04/17 Python
python如何利用traceback获取详细的异常信息
2021/06/05 Python