@vhsporno

Как узнать номер элемента откуда и куда был перенесён элемент через Jquery UI?

Есть HTML код вида:
<tbody class="playlist">
<tr>
<td class="droppable"><div class="draggable">Text</div></td>
<td>Button</td>
</tr>

<tr>
<td class="droppable"><div class="draggable">Text2</div></td>
<td>Button2</td>
</tr>


Есть Jquery UI код для свапа(меняет местами два элемента) элементов. Свапает только первый td с текстом, второй td - кнопки остаются на своих местах.
<script type="text/javascript">
   $(document).ready(function () {
var dragLastPlace;
var movedLastPlace;


$('.draggable').draggable({
  placeholder: 'placeholder',
  cursor:'move',
  zIndex: 1000,
  containment: 'tbody.playlist',
  helper: function(evt) {
    var that = $(this).clone().get(0);
    $(this).hide();
    return that;
  },
  start: function(evt, ui) {
    dragLastPlace = $(this).parent();
    console.log($("tbody").index($('tr#2')));
  },
  cursorAt: {
    top: 20,
    left: 20
  }
});

$('.droppable').droppable({
  hoverClass: 'placeholder',
  cursor:'move',
  drop: function(evt, ui) {
    var draggable = ui.draggable;
    var droppable = this;

    if ($(droppable).children('.draggable:visible:not(.ui-draggable-dragging)').length > 0) {
      $(droppable).children('.draggable:visible:not(.ui-draggable-dragging)').detach().prependTo(dragLastPlace);
    }

    $(draggable).detach().css({
      top: 0,
      left: 0
    }).prependTo($(droppable)).show();
    movedLastPlace = undefined;
  },
  over: function(evt, ui) {
    var draggable = ui.draggable;
    var droppable = this;
    if (movedLastPlace) {
      $(dragLastPlace).children().not(draggable).detach().prependTo(movedLastPlace);
    }

    if ($(droppable).children('.draggable:visible:not(.ui-draggable-dragging)').length > 0) {
      $(droppable).children('.draggable:visible').detach().prependTo(dragLastPlace);
      movedLastPlace = $(droppable);
    }

  }
});
});
</script>


Нужно получить например 1 элемент свапнулся с 3 элементом в последствии это будет через аякс отправляться на бэк.
Как получить вот эти элементы что на что свапнулось?
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$(this).closest('tr').index()

В обработчике start это будет индекс перемещаемого элемента; в drop, соответственно - куда переместили.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект
24 нояб. 2024, в 00:04
5000 руб./за проект