jquery - 复杂 css 列表的可排序列表元素故障

标签 jquery html css jquery-ui jquery-ui-sortable

我正在尝试使用 jquery Sortable 在 html 嵌套列表上实现可排序功能插入。基于它的教程。

它适用于没有 css 的简单列表,但如果我应用某些样式,它就会出现故障。我所说的故障是指动画飞离了光标。

我的树:

<ul class="simple">
    <li>Item 1</li>
    <li>Item 2
        <ul><li>Item 2.1</li></ul>
    </li>
</ul>

JS:

var oldContainer;
$(".simple").sortable({
  group: 'nested',
  afterMove: function (placeholder, container) {
    if(oldContainer != container){
      if(oldContainer)
        oldContainer.el.removeClass("active");
      container.el.addClass("active");
      oldContainer = container;
    }
  },
  onDrop: function (item, container, _super) {
    container.el.removeClass("active");
    _super(item);
  }
});

我无法发布 CSS,因为它太大了。这是一个 JsFiddle .

我无法判断是不是我的编码问题,或者插件不是设计为以这种方式使用的。 我的问题是,如何修复动画?或者我应该使用什么其他插件?

最佳答案

问题出在相对定位的列表项中,如果列表项是相对的,插件似乎无法计算左侧和顶部位置,因此它返回相对于第一个非静态定位父项的位置。另一方面,由于绝对定位,删除 position 属性将导致 :before:after 伪元素出现问题,因为伪内容被插入到包含元素中.

Here 是一个大致适用于默认静态定位的示例。我希望它能达到目的。

关于jquery - 复杂 css 列表的可排序列表元素故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24513833/

相关文章:

jquery - AngularJS - 在指令中选择动态 ng-repeat DOM 元素

html - 如何设置偶数和奇数元素的样式?

html - 将可滚动表格列与CSS中的标题对齐

javascript - 在 Textarea 中的部分文本下划线

css - header 不固定

javascript - 使用 jquery ajax json 发送表单数据

javascript - jQuery 在选择器内查找

javascript - 如何防止JavaScript中的表单提交

javascript - 十六进制不工作

html - 防止文本被放大/缩小