3

div があり、その div には onclick イベントがあります。div の内部には、いくつかのテキストとボタンがあります。テキストをクリックすると、div onclick が送信されます。これは良いことです。ただし、div 内のボタンをクリックすると、ボタンの onclickdiv が送信されます。これが起こることを意図していることは知っていますが、起こらないようにする必要があります。ボタンが押されたときに、jQueryを使用せずにdiv onclickを送信しない方法はありますか?

これが私の現在のプログラムのjsFiddleです

<div onclick="divClick()">
This is the div
<button name="test" onclick="buttonClick()">Click Me</button>
</div>

私は本当にjQueryを使いたくありません。純粋なJavaScriptだけです

4

1 に答える 1

8

stopPropagationイベント関数を使用します。この方法でdivClickは、関数は呼び出されません。

function buttonClick(e) {
   if (!e) e = window.event;
   e.stopPropagation();
   // do what you want
}

eventFirefox のため、次のように引数として明示的に送信する必要があります。

<button name="test" onclick="buttonClick(event)">Click Me</button>

デモ

于 2013-09-16T17:17:56.947 に答える