2016-06-17 4 views
0

親DOMで "stopPropagation"を使用する方法は?

上記の図では、親domノードのイベントと子ノードもあります。

私は、子でstopPropagationを使用してバブリングを防ぐことができます。

しかし、あまりにも多くの子があると、あまりにも多くのstopPropagationが怒られるべきです。親ノードで使用する関数が子バブルを止めることはできますか?

+1

あなたのコードを共有することはできますか? – Rayon

+0

はい、私はあなたの質問を理解した場合、もちろん可能です。問題が何であるかはわかりません。 – dfsq

答えて

2

イベントが特定の種類の子要素を通過した場合、親のイベントハンドラが行う作業を避けたいように思えます。その場合、親イベントハンドラで、event.targetを使用して、イベントが一致する子を通過したかどうかを調べることができます。半擬似コードで

theParentElement.addEventListener("the-event", function(e) { 
    for (var node = e.target; node && node != this; node = node.parentNode) { 
     if (isChildWeWantToFilterOut(node)) { 
      return; 
     } 
    } 

    // parent handler logic that you only want to run when the 
    // event didn't pass through a relevant child 
}, false); 
+0

華麗な!!!それは私が必要とするものです。混乱の原因となった私の貧しい英語のために申し訳ありません。 – pingfengafei

関連する問題