【问题标题】:jquery UI draggable + sortable (cancel receive)jquery UI 可拖动 + 可排序(取消接收)
【发布时间】:2012-05-14 03:02:13
【问题描述】:

我的场景是我有一个可拖动但不可排序的项目列表和另一个可排序的列表。我想要实现的是从可拖动对象拖动到可排序对象中,但是当我将项目放入可排序对象时,我想发出 ajax 请求,并根据答案将项目插入可排序对象中。 我尝试在 beforeStop 上使用或接收可排序的事件以取消添加到可排序的项目,但没有找到解决方案。 我在这里做了一个 jsfiddle http://jsfiddle.net/5pTCd/21/

【问题讨论】:

    标签: jquery-ui jquery-ui-sortable jquery-ui-draggable


    【解决方案1】:

    为什么不在接受/恢复设置中使用您的可拖放/可拖放?

    这是一种完成接受/恢复拖放的理论方法:

    首先,如果不接受,您需要将可拖动设置为恢复:

    $(".drag").draggable({ revert: 'invalid' });
    

    那么你当然可以在你的 droppable 中定义什么是有效的:

    $(".drop").droppable({ accept: '.drag' });​
    

    但感谢 jQuery UI 中包含的魔法粉,您可以插入一个函数作为“accept”的值,它的返回值将定义您接受的有效元素:

    $(".drop").droppable( { accept: function() {
        // return true or false
    } });​
    

    作为替代方案,您可以使用 dragstart 事件来更改 droppable 的接受选项:

    $(".drag").draggable({
        start: function() { 
        // your ajax call and then a callback with :
        $(".drop").droppable("option","accept","#thisItemsID") }
    });
    

    【讨论】:

    • 您需要接受什么?如果你排序,你仍然在同一个列表中。我们仍然可以有一个可放置的可排序对象。
    猜你喜欢
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 2016-09-14
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多