2011-01-26 4 views
6

를받을 정렬.확인 jQuery를 내가 두 개의 UL 목록이 이벤트

내가 작업하고있는 프로젝트의 사용자는 같은 목록에서 이동할 때 이 아닌이 아니라 항목을 이동할 때 동작을 확인하려고합니다. 액션이 트리거되면, 페이지는 Ajax 요청을 서버에 보내서리스트의 위치를 ​​업데이트합니다.

이벤트의 순서는 무엇입니까. 내 경험으로는 지금까지 업데이트 이벤트가 수신 이벤트 전에 트리거되어 확인 대화 상자가 표시되기 전에 요청이 이미 시작되었다는 것입니다.

불행하게도 나는 요청을 트리거하는 목록을 잊어 버렸지 만 제 경우에는 정말로 중요하지 않습니다. 항목이 다른 목록으로 끌려 가면 사용자가 조치를 확인하기 전까지 서버에 아무것도 보내지 않아야합니다.

저는 jQuery를 꽤 많이 사용했지만 저는이 문제에 대해 약간의 도움을 줄 수 있다고 생각합니다.

자바 스크립트 :

$('.sortable').sortable({ 
    start: function (event, ui) { 
     $(ui.helper).addClass("sortable-drag-clone"); 
    }, 
    stop: function (event, ui) { 
     $(ui.helper).removeClass("sortable-drag-clone"); 
    }, 
    update: function (event, ui) { 

     if ($(ui.sender).length == 0) { 
      alert("item was moved within the same list."); 
      //Make request 
     } else { 
      //do nothing. 
     } 
    }, 
    receive: function (event, ui) { 
     if (confirm("show move or copy dialog, from {0} to {1}")) { 
      //do request 
     } else { 
      $(ui.sender).sortable("cancel"); 
      //no request 
     } 
    }, 
    tolerance: "pointer", 
    connectWith: ".sortable", 
    placeholder: "sortable-draggable-placeholder", 
    forcePlaceholderSize: true, 
    appendTo: 'body', 
    helper: 'clone', 
    zIndex: 666 
}).disableSelection(); 

마크 업 :

<div id="list-A"> 
    <ul class="sortable"> 
     <li>item 1</li> 
     <li>item 2</li> 
     <li>item 3</li> 
    </ul> 
</div> 
<div id="list-B"> 
    <ul class="sortable"> 
     <li>item 1</li> 
     <li>item 2</li> 
     <li>item 3</li> 
    </ul> 
</div> 

업데이트 :

시나리오 I) 사용자가 A3에 A1을 드래그 - 결과가 너무 대화에는 확인하지 않습니다 요청이 th로 전송된다. 새 정렬 순서를 유지할 수 있도록합니다.

시나리오 II) 사용자가 B3 (또는 B3에) A1에 A1 드래그 - 결과는 확인 대화 상자이며, 다음, 대화 상자가 인정되는 경우에만, 요청이 서버로 전송됩니다. 이것은 제가 제 의견 중 하나에 설명했던대로 두 가지 요청으로 해결했습니다.

답변

1

update 메서드가 필요하지 않습니다. 제거하면됩니다. Example link.

+0

거의 없지만 아주. 같은 목록 내에서 픽업 가능한 정렬 가능한 이벤트는 아닙니다. 그러나 데이터 속성 ("doConfirm", true)을 설정하고 중지 이벤트 핸들러에서 재설정하여 작동하도록했습니다. 코드를 찾을 수 있는지 보겠습니다. 완벽하지는 않습니다. 두 개의 요청이 서버에 전송됩니다 (하나는 list-A 용이고 하나는 list-B 용). 이상적으로는 항목을 직접 집계하고 단일 요청을 시작하기를 바랬습니다. –

+0

@ Adam Asham : 나는 길을 잃었다! 사용자가 한 목록에서 다른 목록으로 이동을 확인하면 서버에 보내려고합니까? 서버 호출을 요청해야 할 때 시나리오를 나열 할 수 있습니까? – ifaour

+0

죄송합니다. 나는 설명하기에 열악한 직업이었습니다. 두 가지 시나리오로 질문을 업데이트했습니다. –

관련 문제