jQuery UI Sortable - 不允许转移到子元素

时间:2009-05-07 08:35:08

标签: jquery jquery-ui jquery-ui-sortable children

我正在使用jQuery的UI sortables,并以这种格式创建了一个div系统;

<div class='mainDiv'>
    <label>text: <input type='text' name='textbox' /></label>

    <div class='children'>
        <div class='mainDiv'>...</div>
        <div class='mainDiv'>...</div>
        <div class='mainDiv'>
            <label>text: <input type='text' name='textbox' /></label>
            <div class='children'>...</div>
        </div>
    </div>
</div>

div可以有无数个子节点,我希望能够将所有.mainDiv拖放到它们的父框中,所以我使用了这个:

$(".mainDiv").parent().sortable({items: ".mainDiv", containment: "parent"});

但是,这允许将元素拖入其子节点或兄弟节点.children div。我不想发生这种事。我想限制元素留在父母中。

这里的任何帮助都会很热。

干杯

1 个答案:

答案 0 :(得分:4)

我设法解决了这个问题:

$(this).parent().sortable({
    items: '> li',
    axis: 'y',
    ...
});

在您的情况下,它应该与:

一起使用
items: '> .mainDiv'

遏制:“父”不是必需的。

就我而言,我在之前的点击事件中启用“可排序”,因为它更快。我认为如果将它绑定到“mousedown”事件会更容易。如果您动态创建树(例如Ajax),我建议您使用“livequery”。