Как я могу добавить атрибут к новому LI после удаления - PullRequest
1 голос
/ 20 апреля 2011

У меня есть 2 списка:

<h3>Available page layouts</h3>

<ul id="pagepool" class="connectedSortable">
    <li id="I1" class="ui-state-default"></li>
    <li id="I2" class="ui-state-default"></li>
    <li id="I3" class="ui-state-default"></li>
    <li id="I4" class="ui-state-default"></li>
    <li id="I5" class="ui-state-default"></li>
</ul>

<h3>Document structure</h3>

<ul id="docstruct" class="connectedSortable"></ul>

Элементы из списка "pagepool" перетаскиваются (клонируются) в список "docstruct" и затем сортируются вручную.В списке документов могут быть повторяющиеся стили страниц (с дублированными атрибутами id).

Что я хотел бы сделать, так это запросить уникальный хэш md5 через файл php / ajax и добавить этот хэш в атрибут relупавшего предмета, после того как предмет упал.Все, что я до сих пор пробовал, обновляет оригинальный элемент "pagepool".

Как я могу изменить это, чтобы настроить таргетинг только на клонированный элемент?:

$( "#pagepool li" ).draggable({

           connectToSortable: '#docstruct',
           helper: 'clone',
           revert: 'invalid',
           opacity: '.7'

                              });

$( "#docstruct" ).sortable({
           placeholder: "ui-state-highlight",
           revert: true,
           receive: function(event, ui) {
           $.get('ajax/uniqid.php', function(data){ui.item.attr('rel', data)})     
                                                }       
                          });

1 Ответ

0 голосов
/ 06 мая 2011

Не уверен, почему это так, но вот что я нашел.

В событии приема вы не можете получить доступ к реальному элементу, который создается в списке для сортировки.Помощник указывает на клона, который используется только для перетаскивания, элемент - это оригинальный элемент, который вы щелкнули, чтобы перетащить.

Но событие beforeStop срабатывает непосредственно перед событием receive.В beforeStop элемент фактически является элементом в списке.Таким образом, в beforeStop вы можете сохранить элемент и затем использовать его при получении.

Демо здесь: http://jsfiddle.net/kcg29/

...