Как перетаскивать только дочерние элементы внутри вложенных тегов ul с помощью jquery ui draggable

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, перетаскиваю его, перетаскивая весь список. Как перетащить только элементы child1,child2,child2.1. Для обобщения я хочу перетаскивать только элементы li внутри ul, который находится внутри..

Я попытался использовать функцию ниже, но при наведении мыши элементы li элементы скрыты

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

1 ответ

Решение

Согласно странице jQuery API:

Начиная с jQuery 1.7, метод.delegate() был заменен методом.on().

Скрипка Демо

JQuery:

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

    });
});

В CSS используйте > между родительскими и дочерними элементами.

Также у вас было li li вместо li ul,

Другие вопросы по тегам