В демонстрационной версии, на которую вы ссылаетесь, на самом деле есть ошибка; после того, как вы перетащите элемент вниз, он вставит клонированный li
с id
, который является дубликатом брата, в DOM, так что будьте осторожны (ошибка была подана по этому поводу, но никаких действий вокруг нее нет ).
Я сделал несколько вещей, чтобы добиться этого:
Чтобы обойти ограничение демонстрации, которое я описал выше, вместо этого примените class
к перетаскиваемым элементам, которые будут связаны с sortable
:
<ul>
<li class="new-item ui-state-highlight">Drag me down</li>
</ul>
Сделать элементы этого класса перетаскиваемыми вместо выбора элемента с помощью id
:
$(".new-item").draggable({
connectToSortable: "#sortable",
helper: "clone",
revert: "invalid"
});
Нажмите на событие stop
сортируемого элемента и выполните простую логику с предметом, который был отброшен, используя тот факт, что элемент с классом new-item
мог иметь только был отброшен (а не просто существующим элементом в сортируемом):
$("#sortable").sortable({
revert: true,
stop: function(event, ui) {
if (ui.item.hasClass("new-item")) {
// This is a new item
ui.item.removeClass("new-item");
ui.item.html("<b>HI</b>");
}
}
});
Обратите внимание, что вы можете использовать атрибут data-*
вместо добавления вспомогательного класса.
Вот рабочий пример: http://jsfiddle.net/andrewwhitaker/twFCu/
Надеюсь, это поможет.