何时以及为什么return false
在 JavaScript 中使用?
何时以及为何在 JavaScript 中“返回 false”?
通常,在诸如 之类的事件处理程序中onsubmit
,返回 false 是一种告诉事件实际上不会触发的方法。所以,比如说,在这种onsubmit
情况下,这意味着没有提交表单。
我猜你指的是你经常不得不输入一个'return false;'的事实。事件处理程序中的语句,即
<a href="#" onclick="doSomeFunction(); return false;">...
'返回假;' 在这种情况下,会阻止浏览器跳转到当前位置,如 href="#" 所示 - 相反,只执行 doSomeFunction()。当您想向锚点标签添加事件,但又不希望浏览器在每次点击时上下跳转到每个锚点时,这很有用
它用于停止事件的传播。你会看到当你有两个元素都带有点击事件处理程序时(例如)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
如果单击内部元素(element2),它将在两个元素中触发单击事件:1 和 2。这称为“事件冒泡”。如果您只想处理 element2 中的事件,则事件处理程序必须返回 false 以停止事件传播。
另一个示例是链接 onclick 处理程序。如果您想停止链接表单的工作。您可以添加一个 onclick 处理程序并返回 false。阻止事件传播到默认处理程序。
呃......如何在布尔函数中指示“不正确”?
在搜索“js,何时使用'return false;”后,我也来到了这个页面 在其他搜索结果中,我发现一个页面更有用也更直接,位于 Chris Coyier 的 CSS-Tricks 站点:'return false;'之间的区别。和'e.preventDefault();'
他的文章的要点是:
函数(){ 返回假;}
// 等于
function(e) { e.preventDefault(); e.stopPropagation(); }
虽然我仍然建议阅读整篇文章。
更新:在争论使用 return false 的优点之后;作为 e.preventDefault() 的替代品;& e.stopPropagation(); 我的一位同事指出 return false 也会停止回调执行,如本文所述:jQuery Events: Stop (Mis)Using Return False。