удаление нескольких узлов в dojo.fadeOut onEnd - PullRequest
0 голосов
/ 15 декабря 2009

Я пытаюсь удалить несколько узлов, указанных флажками, после исчезновения додзё. Узлы - это простые элементы 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

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

1 Ответ

1 голос
/ 15 декабря 2009

На самом деле это проблема закрытия 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();       
...