2012-12-14 7 views
26

Come posso escludere un elemento dall'elenco ordinabile? Ad esempio, esiste un elemento con il nome di classe 'note' che I non è desidera essere trascinabile?Come escludere un elemento dall'essere trascinato nell'elenco ordinabile?

<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 ordinabili, jquery not ovviamente non funziona ...

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

risposta

35

è necessario utilizzare annullare.

Vedere l'esempio di lavoro here.

Js:

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

Come @Zephyr sottolinea, di questo let si ri-organizzare la posizione trascinando i fratelli, se si vuole evitare che, utilizzano owise1 approach:

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

grazie per l'aiuto! – laukok

+0

@lauthiamkok non è un problema, ho appena adattato la mia risposta alla tua domanda specifica, quindi dai un'occhiata. :) – Trufa

+0

sì, ho notato che hai modificato la risposta. grazie per la modifica! :-D – laukok

20

È potrebbe usare "items" l'opzione di ordinabile:

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

example

o ...

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

example

+0

Funziona anche con i tag '' contenenti un set di dati: '$ (" # table "). Sortable ({items:" [data-real-line] "});'. –

3

È possibile escludere esplicitamente gli elementi con:

$(".sortable").sortable({ 
    cancel: ".disable-sorting" 
});