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 面向对象编程基础:继承
Aug 21 Javascript
input 输入框内的输入事件详细分析
Mar 17 Javascript
js获取电脑分辨率的思路及操作
Nov 22 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
Aug 20 Javascript
解析js如何获取css样式
Dec 11 Javascript
Javascript计算二维数组重复值示例代码
Dec 18 Javascript
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
基于express中路由规则及获取请求参数的方法
Mar 12 Javascript
layer弹出子iframe层父子页面传值的实现方法
Nov 22 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
Jan 07 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
让PHP支持页面回退的两种方法
2008/01/10 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
jquery实现图片预加载
2015/12/25 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
js实现tab切换效果
2017/02/16 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
python负载均衡的简单实现方法
2018/02/04 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
幼儿园园长自我鉴定
2013/10/22 职场文书
创业计划书模版
2014/02/05 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
Python 发送SMTP邮件的简单教程
2021/06/24 Python
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android