2012-12-14 11 views
26

Jak mogę wykluczyć element z listy do sortowania? Na przykład istnieje element o nazwie klasy "uwaga", że I nie chcesz być przeciągalny?Jak wykluczyć element z przeciągania na liście do sortowania?

<ul class="sortable"> 

      <li id="item_3">Item 3</li> 
      <li id="item_4">Item 4</li> 
      <li id="item_5">Item 5</li> 

      <p class="note">This is a note only</p> 
    </ul> 

jQuery UI sortable, jQuery not oczywiście nie działa ...

$(function() { 
    $(".sortable:not(.note)").sortable(
    }).disableSelection(); 
}); 

Odpowiedz

35

Trzeba użyć anulować.

Zobacz przykład roboczy: here.

JS:

$(function() { 
    $('.sortable').sortable(); 
    $('.sortable').disableSelection(); 
    $('.sortable').sortable({ cancel: '.note' }); 
});​ 

Jak @Zephyr wskazuje na to pozwala ci ponownie zorganizować stanowisko przeciągając rodzeństwa, jeśli chcesz uniknąć, używają owise1 approach:

$('.sortable').sortable({ 
    items : ':not(.note)' 
}); 
+0

dziękuję za pomoc! – laukok

+0

@lauthiamkok nie jest problemem, właśnie dostosowałem swoją odpowiedź do twojego konkretnego pytania, więc sprawdź to. :) – Trufa

+0

tak, zauważyłem, że zredagowałeś odpowiedź. dzięki za edycję! :-D – laukok

20

You przydałby "items" opcja sortable za:

$(".sortable").sortable({ 
    items : 'li' 
}); 

example

lub ...

$(".sortable").sortable({ 
    items : ':not(.note)' 
}); 

example

+0

Działa to również z '' znacznikami zawierającymi zbiór danych: '$ (" # table "). Sortable ({items:" [data-real-line] "});'. –

3

można jednoznacznie wykluczyć elementy z:

$(".sortable").sortable({ 
    cancel: ".disable-sorting" 
}); 
Powiązane problemy