2011-12-18 5 views
52

Ho jquery ui sortables funziona bene ma i miei elementi ordinabili hanno altri elementi interattivi al loro interno. Per evitare l'ordinamento accidentale durante l'interazione con gli elementi all'interno delle div ordinabili, mi piacerebbe in qualche modo fare in modo che il movimento di trascinamento per i caratteri si verifichi solo trascinando un determinato elemento all'interno dell'oggetto ordinabile, come ad esempio un'icona 'sposta' che potrebbe risiedere nell'angolo in alto a sinistra di ogni ordinabile. È possibile con jqui generico o dovrei scrivere il mio hook?jquery ui - ordinabile: trascinare con l'icona 'handle' all'interno di elemento ordinabile

risposta

114

L'opzione handle del plug-in consente di definire che è l'elemento che può iniziare l'ordinamento. Puoi fornire un selettore o un elemento.

Se avete questo html, con il .handler di essere la maniglia per avviare il tipo:

<ul class="sortable"> 
    <li> 
     <span class="handle"></span> 
     My element 
    </li> 
</ul> 

applicare l'opzione in questo modo:

$(".sortable").sortable({ handle: '.handle' }); 

potete stile il vostro elemento manico tuttavia si piace.

+3

OMG non può credere che non ho visto questo nella documentazione per ordinabile, ma è giusto nella sezione OPZIONI ... – Rimer

+3

haha. chi legge i manuali utente comunque: o) –

+0

Hmm sembra come in IE7 (modalità quirk in IE9), non funziona :(. L'handle non funziona, e dal momento che era limitato al solo handle, l'ordinamento ora è disabilitato in IE7 :(. Funziona in FF, IE9, Chrome ... – Rimer