tag javascript jquery jquery-ui jquery-ui-sortable

javascript - tag - ul html



¿Cómo comprobar si la lista es clasificable? (5)

Acabo de descubrir que con la interfaz de datos también funciona:

if ($( ''#sortable'' ).data( ''sortable'' )) { // sortable instance exists }

¿Cómo comprobar si una lista específica es clasificable? Like $(''#list'').is('':sortable'') ...?

Si vamos a utilizar

if ($(''#list'').sortable())

entonces la lista se volverá a ordenar y no se comprobará si en realidad es ordenable.


Al aplicar la clasificación, solo agregue una clase ficticia a ese elemento como este,

$( "#sortable" ).sortable(); $( "#sortable" ).addClass("antguider");

luego, si desea verificar que el elemento se pueda ordenar, verifique así:

if($( "#sortable" ).hasClass("antguider")){ alert("Already Sort Applied"); }


Encontré en Safari (quizás otros) las clases no son confiables. ''ui-sortable'' permanece en cualquier elemento que se haya hecho clasificable incluso si lo deshabilitas, lo que da como resultado el uso de las clases ''ui-sortable ui-sortable-disabled''.

Me encontré agregando y eliminando las clases solo para asegurarme de que fueran como esperaba.

if ($(this).hasClass("ui-sortable")) { $(this).removeClass("ui-sortable"); $(this).sortable({ disabled: true }); } else { $(this).addClass("ui-sortable"); $(this).sortable({ disabled: false }); }

- EDITAR

Ok, entonces las clases son confiables, pero lo que estaba buscando no está deshabilitado sino que es .sortable ("destroy") que devuelve el elemento a su estado antes de la inicialización (es decir, elimina todas las clases auxiliares).

Así que para mi interruptor ordenable (que es lo que estaba creando):

if ($(this).hasClass("ui-sortable")) $(this).sortable("destroy"); else $(this).sortable();


Hubo un cambio en la versión jQuery después de 2012, así que ahora puedes escribir:

if ($( ''#sortable'' ).data( ''ui-sortable'' )) { // sortable instance exists }

o

if ($( ''#sortable'' ).is('':ui-sortable'')) { // sortable instance exists }


Si la lista ya se puede ordenar, debe tener la clase ui-sortable .

Puede usar if ($(''#list'').hasClass(''ui-sortable'')) para verificarlo.