У меня есть перемещаемый список (.field), куда можно перетащить объекты от него в поддающийся сортировке список (.sortlist). Я сделал это этот путь, потому что я не хотел основной список (.field) измененный всегда. Это хорошо работает, кроме я не могу разработать, как управлять отброшенным полем в поддающемся сортировке списке.
Я могу сделать это от перемещаемого в сбрасываемую область при помощи следующего в функции для 'отбрасывания': в сбрасываемом ():
$(this).append('html code here to change content of dragged field');
Однако это не работает в поддающемся сортировке (). Мой код похож на это:
$(".sortlist").sortable({
receive: function(event, ui) {
var dropElemTxt = $(ui.item).text();
var dropElemId = $(ui.item).attr('id');
$(ui.item).replaceWith('<li class="box" id="'+dropElemId+'">Updated field! '+dropElemTxt+'</li>');
}
});
$ (ui.item) .replaceWith изменяет основное поле, которое перетаскивалось, таким образом, это не работает. И я попробовал $ (этот) .replaceWith, но это обновляет поддающуюся сортировке область (.sortlist).
Какая-либо идея, что кодирует, я должен сослаться на перетащенный объект?
Большое спасибо, Ali.
Я не могу на самом деле сказать по опыту, потому что я никогда не использовал IBPP.
Но, видимо, он используется проектом фламеробина, так что я бы поверил, что он «достаточно стабилен.»
хвост -f
и все его друзья - старая школа. multitail
выглядит лучше, но реальный способ записи ЦП, наблюдающего за файлами журнала, заключается в использовании glTail .
Я думаю, что я выработал это. Немного халтурно, но, кажется, работает!
Мне нужно использовать $ ('.sortlist li: last') для доступа к перетаскиваемому элементу...
Думаю, я действительно придумал лучшее решение ... похоже, пока работает ...
Я прикрепил сбрасываемый объект к сортируемому, чтобы объявить глобальную переменную перетаскиваемого элемента. Примерно так:
$(".sortlist").droppable({
drop: function(e, ui) {
draggedItem = ui.draggable;
}
}).sortable({
receive: function(event, ui) {
//do something with the 'draggedItem' here...
var droppedElemTxt = draggedItem.text();
var droppedElemId = draggedItem.attr('id');
}
});
Я следовал вашей линии мышления, но было несколько ошибок при использовании этого подхода (иногда выпадающий элемент просто исчезал при использовании droppable + sortable). Вот что у меня получилось:
$(".draglist").draggable({
start: function(e, ui) {
draggedItem = ui.item;
}
});
$(".sortlist").sortable({
receive: function(event, ui) {
//do something with the 'draggedItem' here...
var droppedElemTxt = draggedItem.text();
var droppedElemId = draggedItem.attr('id');
}
, start: function(e, ui) {
draggedItem = ui.item;
}
});