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.