Редактирование перетаскивается после добавления в сортируемую - PullRequest
1 голос
/ 05 января 2010

Эй, я пытаюсь выяснить, к какому событию нужно привязаться и какое свойство нужно использовать, чтобы получить ссылку на элемент DOM для отброшенного элемента (это элемент в списке получения.

Вот что у меня есть ...

<ul id="toolbox">
    <li>A</li>
    <li>B</li>
    <li>C</li>
</ul>
<ul id="existing">
</ul>
<script language="javascript">
    $('#existing').sortable({
        revert: true
    });
    $('#toolbox li').draggable({
        connectToSortable: '#existing',
        helper: 'clone',
        revert: 'invalid',
    });
</script>

Моя цель - превратить, например, A во что-то другое, как только оно будет добавлено в #existing ul (Достаточно чего-то еще - реальная реализация намного сложнее. Мне просто нужно получить этот элемент DOM .

Я попробовал следующее в качестве получения для моего сортируемого:

function receive(ev, ui)
{
    $(this).append('<b>this</b>');
    ui.sender.append('<b>sender</b>');
    ui.item.append('<b>item</b>');
}

Но, похоже, это #existing UL, отправитель и элемент - это тот, который был перетащен в панель инструментов. Я ищу только что созданный li внутри #existing. Есть ли свойство или другое событие, которое даст мне то, что я ищу?

Ответы [ 3 ]

2 голосов
/ 05 января 2010

У меня недавно была такая же проблема. Я решил это со следующим:

$('#existing').droppable({
    drop: function(e, ui) {
        // ui.draggable is the node that gets created in #existing
        // ui.draggable[0].originDragger is the node that was 
        // dragged from #toolbox
    }
}).sortable({
    revert: true
});
1 голос
/ 05 января 2010

Я не пробовал ни одного из них, но теоретически они кажутся работающими. Во-первых, если вы сделали ul#existing также droppable , вы могли бы сделать что-то для события drop, например, получить необходимую информацию из этого li, например, text(), удалить этот объект из DOM и создать новый элемент.

Орр, вы могли бы что-то сделать для события stop вашего перетаскиваемого объекта, например проверить, являются ли родительские элементы элементами ul#existing. Надеюсь, это поможет.

0 голосов
/ 05 января 2010

не привязывается к sortreceive, вместо этого привязывается к sortout, как это

$("#sortable").bind('sortout', function(event, ui) {
 console.log(ui.item);
});

OR

$("#sortable").sortable({ //during initialization
  out:function(event, ui) {
     console.log(ui.item);
   }
 });

в этом случае ui.item будет элементом, который вы ищете

...