私は親にボタンのセットを持っています。それぞれにはプログラムで追加されるSVGアイコンが含まれています。私は親要素をリッスンしようとしているし、特定のボタンの異なる機能をトリガするためにイベントデリゲーションを使用していますが、何が起きているのかは、ボタン自体ではなく、含まれているsvgやパスのイベントターゲットを取得することです。イベントのバブリングを活用する方法や、これをやっている方法を変えて、大量のイベントハンドラを追加するのを避け、必要なイベントをトリガする方法がありますか?相続人は、いくつかの単純化されたコード:私はJavaScriptでボタンにaddEventListenerとネストされた要素を持つイベント委譲パターン
<div class="parent">
// I have a whole lot of these added to the page programmatically
<button class="some-unique-class">
<svg> //... </svg>
</button>
</div>
、その後:
はJQueryを使用してdocument.querySelector('.parent').addEventListener('click', function(event) {
//.. I always want to trigger events on the buttons, not
// on the svg's and their paths.
});
私は親要素に耳を傾け、その要素を指定することで、簡単にこれを行うことができるんだけど、私バニラJSでこれをやりたい。
大変お手伝いをいたします。
あなたは基本的に常にイベントを使用した場合、ターゲットがボタンの子ノードであるかどうかを確認する必要があります委任。 – Bergi
私はそれほど前提としました。 – pushplaybang