tengo filas de la tabla que se pueden ordenar en función de si ciertos botones de radio se comprueban o no. Los sortables se inicializan en document.ready
de la siguiente manera:activar de forma dinámica/desactivar jQuery elemento sortable
$(document).ready(function() {
// Return a helper with preserved width of cells
// handy code I got from http://lanitdev.wordpress.com/2009/07/23/make-table-rows-sortable-using-jquery-ui-sortable/
var fixHelper = function(e, ui) {
ui.children().each(function() {
$(this).width($(this).width());
});
return ui;
};
// #opts = table id; tr.ui-state-disabled class = rows not sortable
$("#opts tbody").sortable({
items: 'tr:not(.ui-state-disabled)',
cursor: 'crosshair',
helper: fixHelper
}).disableSelection();
});
He la siguiente función adjunta a los botones de radio (IDS con el prefijo "active_") onchange
que, o bien añade o elimina el atributo ui-state-disabled
clase de filas de la tabla (IDS dinámicas prefijado "opt_"):
var toggleDrag = function(i){
if ($('#active_'+i+'-0').is(':checked')) {
$('#opt_'+i).addClass('ui-state-disabled');
}
if ($('#active_'+i+'-1').is(':checked')) {
$('#opt_'+i).removeClass();
}
$("#opts tbody").sortable("option", "items", "tr:not(.ui-state-disabled)");
//$("#opts tbody").sortable("refresh");
//alert($('#opt_'+i).attr('class')); - alert indicates that the class attribute is being changed
//$("#opts tbody").sortable("option", "cursor", "auto"); - this works!
}
Si selecciono un botón de radio que deben hacer una fila previamente no-ordenable ordenable, funciona y que puede arrastrar y soltar la fila. El problema es que si selecciono un botón de opción para hacer una fila que anteriormente era clasificable, no se puede ordenar, aún puedo arrastrarla y soltarla. El setter .sortable("option", "items", "tr:not..etc")
no aparece como "cancelar el registro" de una fila si se pudo ordenar previamente. También probé .sortable ("refresh") sin suerte. Y he verificado para ver si el atributo de clase se está modificando con una alerta y así es.
Cualquier ayuda con esto sería muy apreciada.
se olvidó de mencionar Yo probé: – annette
se olvidó de mencionar Yo probé:. $ ("# Opta tbody tr.ui-estado desactivado") ordenable ("opción", "discapacitado", true); y no funcionó, pero luego pensé que era la tabla de esa clase. Así que ¿cómo podría apuntar a la fila con la opción deshabilitada? – annette
También he rellenado un elemento de formulario oculto con la matriz ordenable y excluye las filas que han sido " sin orden "aunque sigan siendo arrastrables y dropables, así que tal vez debería usar explícitamente las funciones de arrastrar y soltar, aunque pensé que eso podía encargarse o todo eso. Son las 10.30pm donde estoy así que me detendré por la noche. Gracias por tu contribución. – annette