jQuery基于排序功能实现上移、下移的方法


Posted in Javascript onNovember 26, 2016

本文实例讲述了jQuery基于排序功能实现上移、下移的方法。分享给大家供大家参考,具体如下:

效果

jQuery基于排序功能实现上移、下移的方法

思路,

跟相邻元素,互换sort。

前提是每一个元素都有自己的sort值,不为零。

<tr id="{sh:$vo.id}">
  <td>
    <span onclick="up(this);" class="glyphicon glyphicon-arrow-up text-danger up" style="cursor: pointer;" title="上移" aria-hidden="true"></span>
      
    <span onclick="down(this);" class="glyphicon glyphicon-arrow-down text-danger down" style="cursor: pointer;" title="下移" aria-hidden="true"></span>
  </td>
  <td>
    <span title="{sh:$vo.user_id}">{sh:$vo.store_name}</span>
  </td>
  <td class="center"><a href="{sh:$vo.logo}" target="_blank"><img src="{sh:$vo.logo}" width='30px;'></td>
  <td class="center">{sh:$vo.category_name}</td>
  <td class="center edit">
    <a val="{sh:$vo.store_id}" onclick="view(this);" class="view btn btn-success" href="javascript:void(0);" title="查看">
      <i class="halflings-icon white zoom-in"></i>
    </a>
  </td>
</tr>

点击,触发up方法,down方法。

获取当前id。

通过jQuery,获取相邻的元素。

// 上移
function up(obj){
  var $tr = $(obj).parents("tr");
  if ($tr.index() != 0) {
    var current_id  = $tr.attr('id');
    var exchange_id  = $tr.prev("tr").attr('id');
    $.ajax({
      url: '{sh::U("Mall/ajax","todo=exchange_sort")}',
      type: 'POST',
      data: 'current_id='+current_id+'&exchange_id='+exchange_id,
      success:function(json) {
        if (json == 1) {
          $tr.fadeOut().fadeIn();
          $tr.prev().before($tr); 
          layer.msg('上移成功', {icon: 1});
        } else {
          layer.msg('上移失败', {icon: 2});
        }
      }
    });
  }
}
// 下移
function down(obj) {
  var len = $(".down").length;
  var $tr = $(obj).parents("tr");
    if ($tr.index() != len - 1) { 
      var current_id  = $tr.attr('id');
      var exchange_id  = $tr.next("tr").attr('id');
      $.ajax({
        url: '{sh::U("Mall/ajax","todo=exchange_sort")}',
        type: 'POST',
        data: 'current_id='+current_id+'&exchange_id='+exchange_id,
        success:function(json) {
          if (json == 1) {
            $tr.fadeOut().fadeIn();
            $tr.next().after($tr); 
            layer.msg('下移成功', {icon: 1});
          } else {
            layer.msg('下移失败', {icon: 2});
          }
        }
      });
  } 
}

这里用到了几个jQuery方法,prev(),next(),before(),after()。以及效果,fadeOut(),fadeIn()。以及一些简单的逻辑判断和技巧。

php后台处理,

case 'exchange_sort':
$mallShopModel = M('Mall_shop');
$current_id  = $this->_post('current_id','trim');
$exchange_id  = $this->_post('exchange_id','trim');
$current_sort = $mallShopModel->where(array('id'=>$exchange_id))->getField('sort');
$exchange_sort = $mallShopModel->where(array('id'=>$current_id))->getField('sort');
$cdata['id']  = $current_id;
$cdata['sort'] = $current_sort;
$cres     = $mallShopModel->save($cdata);
$edata['id']  = $exchange_id;
$edata['sort']  = $exchange_sort;
$eres     = $mallShopModel->save($edata);
if ($cres !== FALSE && $eres !== FALSE){
  exit('1');
} else {
  exit('2');
}

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 Javascript
javascript中获取选中对象的类型
Apr 02 Javascript
jQuery $.data()方法使用注意细节
Dec 31 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
使用变量动态设置js的属性名
Oct 19 Javascript
javascript显示中文日期的方法
Jun 18 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
Jul 07 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
Vue中的Vux配置指南
Dec 08 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 Javascript
node.js中的事件处理机制详解
Nov 26 #Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 #Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 #Javascript
JS基于递归实现倒计时效果的方法
Nov 26 #Javascript
如何在Angular.JS中接收并下载PDF
Nov 26 #Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 #Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 #Javascript
You might like
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Python二维码生成识别实例详解
2019/07/16 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
婚礼司仪主持词
2014/03/14 职场文书
不错的求职信范文
2014/07/20 职场文书
委托书格式
2014/08/01 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
投资申请报告
2015/05/19 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
Python实现智慧校园自动评教全新版
2021/06/18 Python
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server