Jquery从其他列表项的嵌套列表中拖动列表项

时间:2014-02-05 11:46:36

标签: jquery jquery-ui drag-and-drop

我有以下结构:

<ul id="trylist">
    <li id="1">
        <div></div>
        <div></div>
    </li>
    <li>
        <ul>
            <li id="sub1">
                <div></div>
                <div></div>
                <ul>
                    <li id="subsub1">...</li>
                </ul>
            </li>
            <li id="sub2">
                <div></div>
                <div></div>
                <ul>
                    <li id="subsub2">...</li>
                </ul>
            </li>
        </ul>
    </li>
 </ul>

我正在使用JqueryUI。

我想在任何父列表项上拖动“sub”或“subsub”列表项,而不拖动它下面的整个嵌套树。

拖动事件由id为“menuButtonMoveFolder”的按钮触发,当我点击列表中的某个项目时启动,所以我有类似的内容:

$('body').delegate('div#menuButtonMoveFolder','click',function(event)
{
    $('ul#trylist li').draggable({
        revert: true, 
        // helper: "clone" How should i set it?
        start: function() {
            //
        },
        drag: function() {
            //
        },
        stop: function() {
            //
        }
    });
});

我要删除列表项我拖动它上面的任何列表项,无论如何,如果我点击列表项我得到项目和其中的所有嵌套项目。我怎么能只从列表中拖出一个项目,包括它的html代码和id / class?

对不起我的英文不好,我可能在这段代码中犯了一些错误,因为我是现场写的。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你,但是当谈到Drag&amp;删除嵌套列表的排序,我总是使用Manuele J Sarfatti的jQueryUI扩展。它扩展了标准的jQueryUI.sortable()函数,使您只需向左或向右拖动就可以对父项中的列表项进行排序。

你可以在这里试试: http://mjsarfatti.com/sandbox/nestedSortable