2013-01-21 11 views
5

Mam prosty przykład jquery ui. Zasadniczo muszę lista przedmiotów, każdy z nich jest do sortowania. A co chcę osiągnąć, to: anuluj sortowanie tej samej listy. na przykład, jeśli kliknę element na pozycji pierwszej na liście, a następnie przeciągnij go do pozycji 6 i upuszczę. Chcę temu zapobiec, ale jeśli upuszczę element na liście drugiej, to jest w porządku.jQuery UI Sortuj - dwie listy i zapobiegaj sortowaniu wewnątrz listy początkowej

Nie wiem jak określić, aby dopasować moje wymagania. ConnectWith wydaje się nie być wystarczająco:

$("#sortable").sortable({ 
    connectWith: [$('#sortable2')] 
}); 

$("#sortable2").sortable({ 
    connectWith: [$('#sortable')] 
}); 

oto przykład:

http://jsfiddle.net/sQeZE/3/

+0

To znaczy, że * tylko * chcą być w stanie podjąć z listy 1 i dać do listy 2? –

+0

Tak, ale zapobiegnij sortowaniu, jeśli upuszczę element na tej samej liście co początek. Czy wyjaśniam siebie? –

Odpowiedz

2

To może nie być dokładnie to, czego szukasz, ale możesz powiązać ze zdarzeniami receive i stop (wyzwalają w tej kolejności). receive wskazuje, że element listy został odebrany z innej listy. Po uruchomieniu można tymczasowo odblokować sortowanie. stop próbuje blokować sortowania w każdej chwili:

var blocksort = true; 
//Using jQuery 1.6.4, but use `.on` when available 
$("#sortable, #sortable2").bind('sortreceive', function() { 
    blockSort = false; 
}).bind('sortstop', function (e) { 
    if (blockSort) { 
     e.preventDefault(); 
    } 
    blockSort = true; 
}); 

http://jsfiddle.net/sQeZE/5/

+0

wielkie dzięki. Działa tak jak chcę –

+0

Chociaż moje wymagania były trochę inne. To jedyna odpowiedź, która pomogła mi we właściwym kierunku ... Dzięki za to :-) –

1

Jednym rozwiązaniem byłoby ograniczenie powstrzymywanie listach być inna lista, tak:

$("#sortable").sortable({ 
    connectWith: [$('#sortable2')], 
    containment: $('#sortable2') }); 

$("#sortable2").sortable({ 
    connectWith: [$('#sortable')], 
    containment: $('#sortable') }); 

Dzięki temu pozycje #sortable mogą być sortowane tylko na liście #sortable2 i na odwrót.

+0

Dobra teoria, ale "powstrzymywanie" ogranicza również posortowane ruchy przedmiotów, więc efekt jest bardzo dokuczliwy dla użytkownika. –

+0

To dobra rzecz, ale mój iu zachowuje się w dziwny sposób. Dziękuję za poświęcony czas i kod. –

Powiązane problemy