题
我正在尝试删除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();
不隶属于 StackOverflow