2009-12-14 1 views
0

Я пытаюсь удалить несколько узлов, указанных флажками после разложения додзе. Узлы - это простые элементы HTML tr. Событие onclick на кнопке, которая выполняется ниже.удаление нескольких узлов в 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(); 
}  

Он отлично работает для одного узла. Если я выбираю два или более узлов, он отбрасывает все выбранные узлы в унисон, но удаляет только последний выбранный узел из дерева DOM, сообщая об ошибках для первых двух.

Firebug консоль вывод:

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

Любые идеи, как удалить все выбранные узлы из дерева после FADEOUT?

ответ

1

Это фактически проблема закрытия javascript. Исправлено, закрывая текущее значение проиндексированного узла каждый раз, когда выполняется вызов для удаления узла.

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();  
Смежные вопросы