Pregunta

Estoy tratando de eliminar múltiples nodos especificados por casillas de verificación después de un Dojo Fadadout. Los nodos son elementos HTML TR simples. Hay un evento OnClick en un botón que ejecuta el siguiente.

var tbody = dojo11.byId("resultBody1");
for (var k=0; k < selections.length; k++) {
    var temp = selections[k];              

    dojo11.fadeOut( {
        node:temp, 
        duration:1500,
        onEnd: function() {             
            tbody.removeChild(temp);                
        }       
    }).play();
}    

Funciona bien para un nodo. Si selecciono dos o más nodos, se desvanece todos los nodos seleccionados al unísono, pero solo elimina el último nodo seleccionado del árbol DOM mientras informa errores para los dos primeros.

Salida de la consola Firebug:

exception in animation handler for: onEnd
Node was not found" code: "8
var _10b=null;\n

¿Alguna idea de cómo eliminar todos los nodos seleccionados del árbol después del desvanecimiento?

¿Fue útil?

Solución

Este es en realidad un problema de cierre de JavaScript. Se corrigió cerrando el valor actual del nodo indexado cada vez que se realiza la llamada para eliminar el nodo.

   for (var k=0; k < selections.length; k++) {
    var temp = selections[k];              

    dojo11.fadeOut( {
        node:temp,
        duration: 1500, 
        onEnd: function(node) {
                return function() {
                tbody.removeChild(node);
            }
        }(temp)                             
    }).play();       
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top