javascript - JQuery UI 可排序添加元素?

标签 javascript jquery jquery-ui

我正在尝试使用 JQuery UI 的拖/放功能和可排序功能。当您对“放置区域”中的元素进行排序时,它似乎添加了另一个(空)元素。

HTML

<ul id="sortable" class="drop">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
  <li>Item 5</li>
</ul>

JS

$("#sortable").sortable();

$( '.drop' ).droppable({
  drop: function (event, ui) {
    document.getElementById('length').innerHTML = document.querySelectorAll('#sortable li').length;
  }
});

您可以在这里尝试一下:https://jsfiddle.net/udj6p93f/2/

继续对元素进行排序,即使只有 5 个元素,length 也会变为 6。这是怎么回事?

最佳答案

我已经复制了这一行

document.getElementById('length').innerHTML = document.querySelectorAll('#sortable li').length;

就在之后

$("#sortable").sortable();

这是 5 个。检查元素,拖放 1 个元素。它又添加了一项列表项。

<li class="ui-sortable-placeholder ui-sortable-handle" style="visibility: hidden;"></li>

enter image description here

我认为这是因为这个。

修复建议:

$("#sortable").sortable();

$( '.drop' ).droppable({
  drop: function (event, ui) {
    document.getElementById('length').innerHTML = document.querySelectorAll('#sortable li').length - document.querySelectorAll('#sortable li.ui-sortable-placeholder').length;
  }
});

关于javascript - JQuery UI 可排序添加元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41195139/

相关文章:

javascript - jQuery 选择器不适用于表

javascript - 切换忘记的必填表单字段上按钮的可见性

php - 如何检查文本框中的名称是否已作为本地主机服务器(PHP)中的文件夹存在而不使用mysql

javascript - 页面加载时 jQuery 选项卡闪烁 (FOUC)

javascript - 回调函数的一些值

javascript - 如何将对象中的字符串值转换为数字?

Javascript正则表达式获取子字符串,排除模式?

javascript - 根据填充的必填字段构建和操作数组

jquery-ui - 如何在jquery的append函数中添加if条件

php - 发起 POST 请求,执行操作,然后完成 POST 请求 - 如何?