1

DOM を本文にバブルアップするクリック イベントをキャプチャし、クリック要素のセレクターが何であるかを確認し、それに基づいて関数の呼び出しを選択しようとしています。

このようなもの:

<body>
    <a id="do-default-code">Default code</a>
    <a id="do-override-code">Override code</a>
</body>

そして、私はこのような(疑似コード)を描いています。私はjQueryを使用しています:

$('body').bind('click', function() {
    if ($(this) === $('#do-override-code')) {
        overrideCode();
    } else {

    }
});

このコンテキストでのイベントのバブリングを完全には理解していないこと、および上記のコードが正しくないことを認識しているため、コミュニティにガイダンスを求めています。

4

2 に答える 2

2

ステートメントでthisは、イベントをバインドした要素を参照しています。この場合は body 要素です。したがって、if ステートメントは真ではありません。

したがって、実際にクリックした要素を取得するには、イベント オブジェクトのターゲットを調べる必要があります。次のようなものが機能するはずです。

$('body').bind('click', function(event) {
    if ($(event.target).attr('id') == 'do-override-code')) {
        overrideCode();
    } else {

    }
});
于 2011-01-18T17:31:37.910 に答える
0

関数にイベントを渡し、イベントを確認する必要があります。

このリンクは、次のようなhttp://www.quirksmode.org/js/events_properties.htmlを知りたいと思うすべての情報を提供します

イベントの対象となる HTML 要素はどれですか?

そこから、必要なセマンティック情報を簡単に抽出できます

于 2011-01-18T17:34:00.757 に答える