4

これは私の現在の解決策です:

html

<input type="checkbox" value="1" onclick="return do_stuff();" />
<input type="checkbox" value="1" onclick="return do_stuff2();" />

JavaScript:

function do_stuff() {   
    return false;
}

function do_stuff2() {   
    return true;
}

http://jsfiddle.net/NXKMH/12/

onclick 呼び出しで「リターン」が必要になるのを避けたいと思います (例:onclick="do_this();"の代わりにonclick="return do_this();")。jquery が提供する preventDefault() 関数を使用することを考えましたが、うまくいかないようです。また、可能であれば「クリック」イベントをバインドしたくありません。「onclick」を使用することを好みます。(ajax で読み込まれたコンテンツでの作業が容易になります)

考え?

4

2 に答える 2

8

イベント ハンドラーの戻り値によって、ブラウザーの既定の動作も実行する必要があるかどうかが決まります。

そう ...

onclick='function(); return false;' 

それを修正する必要があります...

于 2013-03-21T17:54:16.670 に答える
5

do_stuff() 内で event.stopPropagation() メソッドを呼び出してみましたか...もちろん、イベントに渡す必要があります。

onclick = 'do_stuff(event)'

function do_stuff(ev) {

  if(ev.stopPropagation) {
    // for proper browsers ...
    ev.stopPropagation();
  } else {
      // internet exploder uses cancelBubble ...
      window.event.cancelBubble = true;
  }
  // --- do some more stuff ---//
}
于 2013-03-21T18:52:28.773 に答える