-1

div とボタンを含むページがあります。両方に onClick イベントを追加しました。div のボタンをクリックすると、div の onClick も実行されます。これを回避する方法はありますか?

ありがとうございました、

4

5 に答える 5

2

これを試して、イベントをパラメーターとして onclick イベントに渡し、呼び出します

event.stopPropagation();
event.preventDefault();

onclick イベントの割り当ては次のようになります。

$(button).click(function(event) {
    // script here
    event.stopPropagation();
    event.preventDefault();
});
于 2012-07-23T15:58:07.813 に答える
1

クリック ハンドラでは、たとえば次のように「stopPropagation」を使用できます。

$("button").click(function(e) {
    // handle this event
    // ...

    // don't pass this event up to parent handlers
    e.stopPropagation();

} );

「preventDefault」と呼ばれる関連する関数もあり、これはブラウザーが通常自動的に行うことを行わないように指示します (たとえば、送信ボタンがクリックされたときにページを送信する)。

参照: https://developer.mozilla.org/en/DOM/event.stopPropagation http://api.jquery.com/event.stopPropagation/ クリック イベント リスナーに「return false」を追加すると、どのような影響がありますか? http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

于 2012-07-23T16:01:08.613 に答える
0

上記のいずれも機能しない場合は、次を試してください。

$("button").click(function(e) {
    e.stopImmediatePropagation();
});
于 2016-01-11T13:02:55.590 に答える
0

ボタンの onClick イベントが Div にバブリングしないようにする必要があります。したがって、基本的には、ボタンの onClick 関数の最後で、すべてのロジックを実行したら、event.stopPropagation() を呼び出す必要があります。

于 2012-07-23T15:58:04.430 に答える
0

link 要素のリスナーに を配置e.stopPropagation()すると、問題が修正されます (イベント バブリングを使用している場合)。

jQuery を使用していない場合は、useCaptureパラメータaddEventListener()False info - MDNに設定してください。イベントが DOM を通過する方向を確実に把握したい (イベントをバブリングさせたい)。

于 2012-07-23T15:57:27.467 に答える