我正在尝试删除Dojo淡出后通过复选框指定的多个节点。节点是简单的HTML TR元素。按钮上有一个OnClick事件,可以执行以下操作。

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();       
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top