javascript - 带有可排序 UI 的 jQuery 拖放不起作用

标签 javascript jquery jquery-ui

我目前正在尝试创建一个带有可排序列表项的拖放...但是当我将可拖动项目移向占位符时,它只是返回到它的位置。你知道我做错了什么吗?

我找到了这个方法here ,但它似乎对我不起作用。

这是我的 HTML:

<ul id="draggable">

    <li class="to-drag" class="items">
        <h1>1</h1>
        <p>Description 1</p>
    </li>

    <li class="to-drag" class="items">
        <h1>2</h1>
        <p>Description 2</p>
    </li>

    <li class="to-drag" class="items">
        <h1>3</h1>
        <p>Description 3</p>
    </li>

</ul>

<div style="height: 100px; clear: both;"></div>

<ul id="dropzone" class="items">

    <li class="placeholder"></li>

</ul>

这是 jQuery:

$(function() {

    $("#draggable li.to-drag").draggable({

        connectWith: "#dropzone",
        helper: "clone",
        revert: "invalid",
        droppable: "drop"

    });

    $("#dropzone").droppable({

        drop: function( event, ui) {

            $(this).addClass("correct");

        }

    });

    $("ul, li").disableSelection();

});

感谢您的帮助! :)

编辑

这是正在运行的 jQuery:

$(function() {

$("#dropzone").sortable({

    revert: true,
    opacity: 0.5

});

$("#draggable li").draggable({

    connectToSortable: ".items",
    helper: "clone",
    revert: true,
    opacity: 0.5

});

$("li.placeholder").droppable({
    revert: false,

    drop: function (event, ui) {

        var dragging = ui.draggable.clone();

        $(this).append(dragging);

    }

});

$("ul, li").disableSelection();

});

最佳答案

您至少遇到三个主要问题:

  • Draggable 没有 connectWith,它有 connectToSortable。 所以你应该改变这一点。参见文档: http://api.jqueryui.com/draggable/

  • 要使用connectToSortable,您需要一个sortable,而不是
    可放置

  • 您需要将 drop 事件更改为可排序事件,receive
    也许或更新,具体取决于您的需要。
    http://api.jqueryui.com/sortable/

它可能看起来像这样:

$(function() {

    $("#draggable li.to-drag").draggable({

        connectToSortable: "#dropzone",
        helper: "clone",
        revert: "invalid",
        droppable: "drop"

    });

    $("#dropzone").sortable({

        receive: function( event, ui) {

            $(this).addClass("correct");

        }

    });

    $("ul, li").disableSelection();

});

关于javascript - 带有可排序 UI 的 jQuery 拖放不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30870738/

相关文章:

javascript - nodejs - 等待 fs.stat 完成

JavaScript函数同步

jquery - 使用 jQuery 加载 JSON 时 IE9 的行为非常奇怪

JQuery 对话框 : Don't disable the background

javascript - jQuery 菜单用户界面。展开二级子菜单时自动展开三级子菜单

页面上的 jquery 和 google map 显示事件

javascript - 加载更多按钮脚本: image instead of text

javascript - JS 按住一个键有延迟

javascript - 错误时不阻止默认 - 不使用 AJAX 重新加载页面

JavaScript:数组。为什么将一个空数组与一个填充数组连接起来会产生一个字符串?