2016-07-07 3 views
3

ターゲットノードで変異オブザーバを使用しています。子ノードまたはプロパティのいずれかが変更された場合に発生します。しかし、私は、ターゲットノード自体を削除する必要がある場合があります。これは動作していません。これを処理する方法はありますか?ターゲットノード自体がJavaScriptで削除されている場合、変異オブザーバがリッスンします。

答えて

1

MutationObserversは3つの事を監視することができます

  • 属性変更
  • テキストコンテンツの変更
  • 子リストの変更

は次に、これらの変更イベントがバブルアップすることができ、オプション、ターゲットの子とターゲットのすべての子の両方を変更したい場合は、それを行うことができます。

これは、あなたの目標を聞いて行うことができないことを意味します。オブザーバをターゲットの親ノードに接続し、追跡するノードを削除する親ノードでchildListの変更をリッスンする必要があります。

代わりにあなたが

var observer = new MutationObserver(callback); 
observer(target, { 
    // Fake non-existent option 
    parent: true 
}); 

のために望んでいたものを、この偽の例のあなた行う

var observer = new MutationObserver(function(mutations){ 
    var targetRemoved = mutations.some(function(mutation){ 
    return mutation.removedNodes.indexOf(target) !== -1; 
    }); 

    if (targetRemoved) callback(); 
}); 
observer(target.parentNode, { 
    childList: true 
}); 
+0

私は、ノードの除去をターゲットに聞いて達成するために助けることができるハックのいずれかの種類があります?私はこの問題を抱えているケースがあります –

関連する問題