jquery - 拖动有序列表项时,后续项的编号总是增加 1

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

虽然 jQuery 可排序小部件 在大多数情况下工作正常,但在 有序列表 的情况下,当我们拖动元素时,编号会出现问题。下面是一个示例程序来说明这一点:

<!DOCTYPE html>
<html>

    <head>
        <script src="jquery-1.6.2.min.js"></script>
        <script src="jquery-ui-1.8.16.custom.min.js"></script>
        <script>
            $(document).ready(function () {
                $('ol').sortable();
            });
        </script>
    </head>

    <body>
        <ol>
            <li>
                <label for="name">Name</label>
                <input type="text" id="name" />
            </li>
            <li>
                <label for="class">Class</label>
                <input type="text" id="class" />
            </li>
        </ol>
    </body>

</html>

拖动前:

enter image description here

拖动过程中:

enter image description here

拖动完成后,排序将恢复。这个错误之前已经注意到但没有修复。有人找到治疗方法了吗?

Here是它的 fiddle

最佳答案

这是由 jquery UI 的 placeholder 引起的,它在 sortable 开始时自动添加到您的列表中。实际上,您可以简单地在开始事件中隐藏占位符或创建您自己的不显示的类。

这里的想法:

$(document).ready(function () {
    $('ol').sortable({
        start: function( event, ui ){
            $(ui.item).parent().find('.ui-sortable-placeholder').hide();
        },
    });
});

或者:

<script>
    $(document).ready(function () {
        $('ol').sortable({placeholder: "sortable-placeholder"});
    });
</script>

<style>
    .sortable-placeholder {display: none;}
</style>

编辑:

您实际上还可以将占位符显示设置为阻塞,这样它就不会被假定为列表子项:

.sortable-placeholder {
    height: 20px;
    display: block;
}

此处修改FIDDLE .

关于jquery - 拖动有序列表项时,后续项的编号总是增加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13965032/

相关文章:

javascript - 调整窗口大小时同位素包装中的元素之间的细线间隙

javascript - 当您将鼠标悬停在另一个 div 中的按钮上时,如何更改 div 背景?

javascript - 在当前返回 Uncaught TypeError : Cannot read property 'weight' of undefined 的节点 d3.js 之间创建链接

javascript - 输入文本更改时提交表单

javascript - 输入 propertyChange 不适用于 jQuery datepicker

javascript - 如何删除上传的图片?

html - animate.css 动画距离

jquery - jquery ajax跨域请求

html - 在 Bootstrap 3 中将列表包装到新行

jquery - Dart HTML : add Event Handlers to objects which yet not exists