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 相关文章推荐
eclipse导入jquery包后报错的解决方法
Feb 17 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
javascript获取select值的方法分析
Jul 02 Javascript
微信开发 微信授权详解
Oct 21 Javascript
jQuery实现select模糊查询(反射机制)
Jan 14 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
详解VUE中v-bind的基本用法
Jul 13 Javascript
在vue中使用公共过滤器filter的方法
Jun 26 Javascript
Vue开发之封装分页组件与使用示例
Apr 25 Javascript
js图片无缝滚动插件使用详解
May 26 Javascript
vuejs中父子组件之间通信方法实例详解
Jan 17 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
Apr 14 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绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
AngularJS入门教程之模块化操作用法示例
2016/11/02 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
Python MD5加密实例详解
2017/08/02 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python设置环境变量的原因和方法
2019/06/24 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
迎新晚会主持词
2014/03/24 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书