ECMAscript自体を使用して「ちょうど」することは本当にうまくできません。例えば、簡単にノード自体にその財産を横取り当然のことができます
document.getElementById('buy').onclick = function() {};
の形でDOMレベル1で追加されたクリックイベントハンドラがあった場合。 DOM Level 2が.addEventListener()
と対戦すると、状況がさらに複雑になります。.attachEvent()
。今では、すべての異なるリスナーがどこからバインドされているかを探す「場所」はありません。
これはjQueryを使用すると改善されます。 jQueryは、呼び出しのDOMノードにリンクされている特別なオブジェクトにすべてのイベントハンドラ関数を保持します。あなたはjQueryのようなライブラリも使用しているので、今、私はすでにノードにイベントリスナーを結合する3つの異なる方法(実際にはその2を説明した。しかし、
$('#buy').data('events');
のようなノードのための.data()
-expandoプロパティを取得することにより、それをチェックすることができますもちろんDOMレベル1または2の方法)。
イベントが委任によって誘発された場合、実際には醜い状態になります。つまり、私たちはクリックイベントを親ノードにバインドして、そのイベントが私たちにバブリングするのを待っているので、target
を確認することができます。だから、node
とevent listener
の間には直接の関係はありません。
結論ここには、ブラウザプラグインのルックスアウト、おそらくVisualEventのようなものがあります。
イベントハンドラはどこですか? –
divにイベントハンドラがどのようにアタッチされているかを確認していますか? – Blazemonger
サイドノート:divをボタンとして使用しないでください。代わりにまたはIm a linkを使用してください。 –