12

떨어졌다 때 목록에서 요소의 위치를 ​​얻기 : http://jqueryui.com/demos/sortable그것의 드래그/(ui.sortable) 나는 이와 같은 정렬 가능한 목록이

가있는 요소의 시작과 끝 위치에 접근 가능을 목록이 옮겨 졌을 때? 목록에서 위치 번호에 대해 이야기하고 있습니다.

예를 들어, 요소 2를 목록의 5 위치로 이동하면 해당 두 숫자를 변수에 할당하고 싶습니다.

저는 jQuery를 처음 사용했습니다 - 어떤 도움을 주시면 감사하겠습니다.

+2

이 jQuery를 UI –

답변

32

는 해결책 : 참고

$(function() { 
    $('ul#sortable').sortable({ 
     start: function(event, ui) { 
      var start_pos = ui.item.index(); 
      ui.item.data('start_pos', start_pos); 
     }, 
     update: function(event, ui) { 
      var start_pos = ui.item.data('start_pos'); 
      var end_pos = ui.item.index(); 
      alert(start_pos + ' - ' + end_pos); 
     } 
    }); 
}); 
  • : 업데이트 우리를 만들려면 어떤 이유로 ui.item.index()를 들어 Alconja
+1

+1 니스 간결하게 대답 끔찍한 API 디자인의 그런 좋은 예입니다,하지만, 그건 당신이'ui.item'을 포장 할 필요가 없습니다 이미 jQuery 객체. 그래서'$ (ui.item) 대신'ui.item'을 사용하십시오 – Mottie

+0

은 좋은 소리입니다! ;-) –

+0

우아한 대답! 정말 고맙습니다. ui.item 객체가 내가 찾고있는 객체라고 생각합니다. – Wurlitzer

1

나는 당신이 찾고있는 것이 serialize method으로 끝났다고 믿습니다. Serialize는 목록의 새로운 순서를 얻습니다.

1

의 조언에 따라 jQuery를 data() 방법의 전자 나를 위해 작동하지 않았다.

이 한 :

update: function (event, ui) 
{ 
    var index = $('li', $(ui.item).parent()).index(ui.item); 
    alert(index); 
} 
관련 문제