4

这是我目前的解决方案:

html

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

脚本:

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 回答