使用复选框的"onclick"时,可以轻松防止默认操作?

Roe*_*and 3 javascript jquery web-applications

这是我目前的解决方案:

HTML

<input type="checkbox" value="1" onclick="return do_stuff();" />
<input type="checkbox" value="1" onclick="return do_stuff2();" />
Run Code Online (Sandbox Code Playgroud)

javscript:

function do_stuff() {   
    return false;
}

function do_stuff2() {   
    return true;
}
Run Code Online (Sandbox Code Playgroud)

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

我想避免在onclick调用中需要"返回"(例如,onclick="do_this();"代替onclick="return do_this();").我想过使用jquery提供的preventDefault()函数,但似乎无法正常工作.另外,如果可能的话,我不想绑定"click"事件.我更喜欢使用"onclick".(更容易使用ajax加载的内容)

思考?

Rad*_*rib 6

事件处理程序的返回值确定是否也应该发生默认浏览器行为.

所以......

onclick='function(); return false;' 
Run Code Online (Sandbox Code Playgroud)

应该解决它...


Rad*_*rib 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 ---//
}
Run Code Online (Sandbox Code Playgroud)