在dojo.fadeOut上删除多个节点onEnd

问题描述:

我试图在dojo淡出后删除复选框指定的多个节点。节点是简单的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 

任何想法如何删除从淡出后的树中的所有选择的节点?

这实际上是一个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();