質問

Dojo Fadeoutの後、チェックボックスで指定された複数のノードを削除しようとしています。ノードは単純なHTML TR要素です。以下を実行するボタンにオンクリックイベントがあります。

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();
}    

1つのノードでは正常に動作します。 2つ以上のノードを選択すると、選択したすべてのノードが一斉にフェードアウトしますが、最初の2つのエラーを報告しながら、最後に選択したノードを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