javascript - jQuery 可排序和可放置列表

标签 javascript jquery jquery-ui jquery-ui-sortable droppable

所以我正在寻找的是一种在同一元素上同时使用可排序和可放置的方法。 假设我有一个包含 5 个元素的列表,这些都是可排序的。我想做的是当一个元素被放到另一个元素之上时,它将附加到该元素并离开列表,例如:

<ul>
    <li>List Item</li>
    <li>List Item</li>
    <li>List Item</li>
    <li>List Item</li>
    <li>List Item</li>
</ul>

元素已被删除

<ul>
    <li>List Item</li>
    <li>List Item</li>
    <li>List Item</li>
    <li>List Item 
        <ul>
              <li>List Item Dropped</li>
        </ul>
    </li>

</ul>

如果您有答案或指南,我们将不胜感激!

最佳答案

HTML:

<ul id="theUL">
    <li class="item">List Item</li>
    <li class="item">List Item</li>
    <li class="item">List Item</li>
    <li class="item">List Item</li>
    <li class="item">List Item</li>
</ul>

这是您的 UL 的 sortable 代码。您需要配置 change 事件。 Change 事件在 sort 事件发生时发生,否则,意味着 drop 事件发生。

$("#theUL").sortable({
    revert: true,
    items: "li",
    change: function( event, ui ) {ui.helper.addClass("change");},
    beforeStop: function( event, ui ) {ui.helper.removeClass("change");}
});

在droppable 代码中,检查是否发生变化,如果没有,则表示dropped。

$(".item" ).droppable({
    accept: function(el) {
        return el.hasClass('item');
    },
    drop: function (event, ui) {
        item=ui.draggable;
        if(!item.hasClass('change')){
            //dropped!
        }
    }

});

关于javascript - jQuery 可排序和可放置列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745191/

相关文章:

jquery - 切换 HTML "spinner"输入的显示

jquery - 隐藏特定 Jquery UI 微调器的微调器按钮

javascript - jQuery 通过单击按钮从网站中删除所有 js

javascript - 当与 multer 一起用于多部分数据时,hasOwnproperty 变得未定义

javascript - Jquery 动态属性

javascript - addClass 不起作用(jQuery)

javascript - 微调 megamenu 的 jQuery 要求

javascript - 从 jquery 触发 native js 事件

javascript - 将整个表格置于其外部 div 的中心

php - 使用 jQuery .ajax 作为投票脚本。投票成功后如何更新MySQL DB?