javascript - jQuery对元素进行拖动并重新排序 ??
PHP中文网
PHP中文网 2017-04-10 15:52:53
[JavaScript讨论组]

像淘宝上面那样,鼠标悬停时单击左右按钮 和删除按钮。 单击左边时,原来图片会向向移动,向左的图片会引用到原来的位置。

传送门



Document





  • 左移 右移 删除

  • 左移 右移 删除

  • 左移 右移 删除

  • 左移 右移 删除

  • 左移 右移 删除




index()可以获取到某个元素在兄弟节点中的位置,先获取到你点击的那个图片在同级节点中的位置,让位置减一,获取到减一后位置的元素的ID,再把这个元素插入到那个元素前面去,就左移了
这个写法是怎么写啊?

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
黄舟

建议用Model > View的方法,把LI对象先保存到不可见的数据层中,要移位时先在数据层的数组的排序好,然后把UL清空,把新顺序的LI写进UL上。

先保存当前位置:

window.arr = [];
$('ul > li.pic').each(function(i){
  $('.left', this).on('click', function(){
    liOnClick('left', i);
  });
  $('.right', this).on('click', function(){
    liOnClick('right', i);
  });
  window.arr.push(this);
});

处理向左向右事件:

function liOnClick(direction, i){
  var temp;
  if(direction == 'left') {
    temp = window.arr[i];
    window.arr[i] = window.arr[i-1];
    window.arr[i-1] = temp;
  }
  if(direction == 'right') {...}
  liRender();
}

重绘LI

function liRender() {
  $('ul').empty();
  $.each(window.arr, function(){
   $('ul').append(this);
  });
}

以上为大概的代码,仅供参考,不保证运行正常。

PHP中文网

有个Js插件叫sortable,实现鼠标拖动重新排序,功能挺强大实用的,也能实现类似需求

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号