jQuery - управляйте отброшенным элементом в поддающемся сортировке списке

У меня есть перемещаемый список (.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.

7
задан WastedSpace 19 January 2010 в 17:54
поделиться

3 ответа

Я не могу на самом деле сказать по опыту, потому что я никогда не использовал IBPP.
Но, видимо, он используется проектом фламеробина, так что я бы поверил, что он «достаточно стабилен.»

-121--4904120-

хвост -f и все его друзья - старая школа. multitail выглядит лучше, но реальный способ записи ЦП, наблюдающего за файлами журнала, заключается в использовании glTail .

-121--910204-

Я думаю, что я выработал это. Немного халтурно, но, кажется, работает!

Мне нужно использовать $ ('.sortlist li: last') для доступа к перетаскиваемому элементу...

1
ответ дан 6 December 2019 в 15:22
поделиться

Думаю, я действительно придумал лучшее решение ... похоже, пока работает ...

Я прикрепил сбрасываемый объект к сортируемому, чтобы объявить глобальную переменную перетаскиваемого элемента. Примерно так:

$(".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');
  }
});
0
ответ дан 6 December 2019 в 15:22
поделиться

Я следовал вашей линии мышления, но было несколько ошибок при использовании этого подхода (иногда выпадающий элемент просто исчезал при использовании 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;
  }
});
1
ответ дан 6 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: