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 相关文章推荐
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
Dec 11 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
Dec 11 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
Javascript中call与apply的学习笔记
Sep 22 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
Apr 17 Javascript
javascript中的 object 和 function小结
Aug 14 Javascript
微信小程序实战之自定义toast(6)
Apr 18 Javascript
js禁止浏览器页面后退功能的实例(推荐)
Sep 01 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
Sep 12 Javascript
Vue实现push数组并删除的例子
Nov 01 Javascript
如何基于javascript实现贪吃蛇游戏
Feb 09 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
一个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实现将GB编码转换为UTF8
2006/11/25 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
PHP编写RESTful接口
2016/02/23 PHP
php微信开发接入
2016/08/27 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
python 产生token及token验证的方法
2018/12/26 Python
python实现倒计时小工具
2019/07/29 Python
python3图片文件批量重命名处理
2019/10/31 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
UNIX特点都有哪些
2016/04/05 面试题
便利店投资创业计划书
2014/02/08 职场文书
房屋继承公证书
2014/04/10 职场文书
超市店庆活动方案
2014/08/31 职场文书
小学见习报告
2015/06/23 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang
MySQL时区造成时差问题
2022/04/13 MySQL