【问题标题】:how to drag only child elements inside nested ul tags using jquery ui draggable如何使用jquery ui可拖动仅在嵌套的ul标签内拖动子元素
【发布时间】:2013-12-30 06:34:00
【问题描述】:
My list is something like this
<div id="jqxTree">
    <ul>
        <li>Parent1
            <ul>
                child1
            </ul>
        </li>
        <li>Parent2
            <ul>
                child2
            </ul>
            <ul>
                child2.1
            </ul>
        </li>
    </ul>
</div>

当我使用 jquery draggable 时,它​​可以拖动整个列表。如何只拖动 child1、child2、child2.1 元素。概括地说,我只想在 li 内部的 ul 中拖动 li 元素。

我尝试使用下面的函数,但鼠标悬停在 li 的元素上时,元素被隐藏了

$('#jqxTree').delegate('li li', 'mouseover', function () {
    $(this).draggable({
        revert: true,
        revertDuration: 0
    });
}); 

【问题讨论】:

    标签: jquery jquery-draggable jquery-droppable


    【解决方案1】:

    根据 jQuery API 页面:

    从 jQuery 1.7 开始,.delegate() 已被 .on() 方法取代。

    Fiddle Demo

    jQuery:

    $(function () {
        $('#jqxTree').on('mouseenter mouseover', 'li > ul', function () {
            $(this).draggable({
                revert: true,
                revertDuration: 0
            });
    
        });
    });
    

    在 CSS 中,在父元素和子元素之间使用&gt;

    你还有li li而不是li ul

    【讨论】:

    • 嗨,实际上这对于静态列表来说工作得很好,但是当我使用 ajax 加载列表时,这有点奇怪。每当我点击父元素时,子元素都会消失,并且在拖动父元素时,所有子元素也是被拖拽。我使用 jqxtree jquery api 以树的形式从 ajax 加载数据,并希望这个列表是可拖动的。如果它的动态应该有其他方法,你能建议我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多