最近做了一个项目,包括了一个列表页,为了用户体验,操作均使用JS实现,其中包括在列表中实现上移,下移,删除等功能,前台JS,后端数据修改使用AJAX,本文主要说一下前台JS这块

先看一下页面的截图

aaarticlea/png;base64,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" alt="" />

看一下它的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方法写出来,大家可以根据具体情况而定。

js~一个列表中包含上移下移删除等功能的更多相关文章

  1. 在Python的列表中利用remove()方法删除元素的教程

    在Python的列表中利用remove()方法删除元素的教程 这篇文章主要介绍了在Python的列表中利用remove()方法删除元素的教程,是Python入门中的基础知识,注意其和pop()方法的区 ...

  2. Django查询一个权限中包含哪些用户

    Django查询一个权限中包含哪些用户 Django的Permission对象中没有直接查询相关用户的信息,而都是通过User对象来查询某个用户有哪些权限,例如: user.objects.get(u ...

  3. Day10 - JS 实现 Checkbox 中按住 Shift 的多选功能

    Day10 - JS 实现 Checkbox 中按住 Shift 的多选功能 作者:liyuechun 简介:JavaScript30 是 Wes Bos 推出的一个 30 天挑战.项目免费提供了 3 ...

  4. JAVA ArrayList实现随机生成数字,并把偶数放入一个列表中

    package Code429; import java.util.ArrayList;import java.util.Random; public class CodeArrayListPrint ...

  5. Python3基础 set() 删除一个列表中的重复项

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  6. Python3基础 使用for循环 删除一个列表中的重复项

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  7. 利用JS将页面中包含“一个”字段值的元素改为红色

    document.body.innerHTML = document.body.innerHTML.replace(/一个/ig,"<span style='color: red;'& ...

  8. Python3基础 把一个列表中内容给另外一个列表,形成两个独立的列表

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  9. Python3基础 print 查看一个列表中存储的所有内容

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

随机推荐

  1. UILongPressGestureRecognizer的selector多次调用解决方法

    当你使用longPress gesture recognizer 时,你可能会发现调用了多次. UILongPressGestureRecognizer *longPress = [[UILongPr ...

  2. WPF之核心面板(容器)控件简单介绍

    一.Canvas 1.官方表述:定义一个区域,在该区域中可以使用相对于该区域的坐标显式定位子元素. 2.对于canvas 的元素的位置,是靠控件的大小及Canvas.Top.Canvas.Left.C ...

  3. apache-php安装mysql简单方法

    1.启用mysql功能,在php.ini中 extension=php_mysql.dll extension=php_mysqli.dll 2. 修改extension_dir = "ex ...

  4. newman安装时遇到问题的解决

    npm安装newman时系统提示需要安装.net framwork环境 通过查询文档安装visual studio express: 于是安装visual studio 2012 express. 安 ...

  5. sdk manager更新失败,显示Download interrupted: read timed out,应该如何解决?

    今天开始第一天学习Android,就遇到一个大问题.sdk manager无法自动更新,总在提示超时!!! 经过网上查询发现问题原因是. 在利用android sdk manager更新时失败,具体情 ...

  6. 通过搭建一个精简的C语言开发环境了解一个C程序的执行过程

    一.如何搭建一个精简的C语言开发环境 准备:下载TC2.0,并解压,比如说“d:\tc2.0\tc”目录 1.在C盘建立一个目录minic c:\ md minic 2.从解压的目录中将以下文件拷贝到 ...

  7. uboot的jumptable_init函数分析

    一.函数说明 函数功能:安装系统函数指针 函数位置:common/exports.c 二.函数分析 void jumptable_init (void) { int i; gd->jt = (v ...

  8. iOS中浅淡UIApplication单例-b

    在iOS的操作系统中 每一个程序都对应一个application单例,每一个application都对应一个Appdelegate代理,在代理中控制程序的各个状态.我们在程序中获取Applicatio ...

  9. How to solve "The specified service has been marked for deletion" error

    There may be several causes which lead to the service being stuck in “marked for deletion”. Microsof ...

  10. MongoDB入门简介

    MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...