2009-12-14 5 views
0

J'essaie de supprimer plusieurs nœuds spécifiés par des cases à cocher après un fondu de dojo. Les nœuds sont des éléments HTML tr simples. Il existe un événement onclick sur un bouton qui exécute le suivant.Suppression de plusieurs nœuds dans dojo.fadeOut onEnd

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(); 
}  

Fonctionne correctement pour un noeud. Si je sélectionne deux nœuds ou plus, il fadeOut tous les nœuds sélectionnés à l'unisson, mais ne supprime que le dernier nœud sélectionné de l'arborescence DOM tout en signalant les erreurs pour les deux premiers.

sortie de la console Firebug:

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

Toute idée comment supprimer tous les noeuds sélectionnés de l'arborescence après la fadeOut?

Répondre

1

Il s'agit en fait d'un problème de fermeture de javascript. Correction en fermant la valeur actuelle du noeud indexé chaque fois que l'appel est fait pour retirer le noeud.

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();  
Questions connexes