Question

J'essaie de supprimer plusieurs nœuds spécifiés par les cases après un Dojo Fadeout. Les nœuds sont de simples éléments HTML TR. Il y a un événement OnClick sur un bouton qui exécute ce qui précède.

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

Cela fonctionne bien pour un nœud. Si je sélectionne deux nœuds ou plus, il décroche tous les nœuds sélectionnés à l'unisson, mais supprime uniquement le dernier nœud sélectionné de l'arborescence DOM lors de la signalement des 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

Des idées comment supprimer tous les nœuds sélectionnés de l'arbre après le Fadeout?

Était-ce utile?

La solution

Il s'agit en fait d'un problème de fermeture JavaScript. Correction de la fermeture de la valeur actuelle du nœud indexé chaque fois que l'appel est effectué pour supprimer le nœud.

   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();       
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top