jQuery UI Sortable - 禁止传输到子元素

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

我正在使用 jQuery 的 UI 可排序,并创建了这种格式的 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 中。我不想发生这种情况。我想将元素限制在其父元素内。

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

干杯

最佳答案

我成功地解决了这个问题:

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

就您而言,它应该适用于:

items: '> .mainDiv'

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

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

关于jQuery UI Sortable - 禁止传输到子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/833491/

相关文章:

javascript - 更改时自动保存的最佳方法

JQuery UI Sortable 接收前禁用更新功能

jquery - 在开始之前取消拖动

javascript - 如何根据 JQuery UI 范围 slider 值缩放图像?

javascript - Jquery html() 内部条件检查

javascript - 使用动态填充 ID 值计算 div 的高度

jquery-ui - YUI3 和 socket.io

jquery - 设置 jQuery UI 对话框相对于打开它的元素的位置

jquery - 当我们关闭叠加层时,YouTube 视频不会停止

jquery - 将 jQuery-UI "sortable"项拖放到页面的另一个元素上