Answers:
通常,在事件处理程序(如中)中onsubmit
,返回false是一种告诉事件实际上未触发的方法。因此,在这种onsubmit
情况下,这意味着将不提交表单。
event.preventDefault()
用于此功能。我认为不建议返回false,并且不再总是有效。
return false
方法中的是,这会改变什么吗?
我猜想您是指您经常不得不将“返回false”作为事实。您的事件处理程序中的语句,即
<a href="#" onclick="doSomeFunction(); return false;">...
“返回假”;在这种情况下,将停止浏览器跳转到当前位置,如href =“#”所示-而是仅执行doSomeFunction()。当您想要向锚标签添加事件,但又不想浏览器在每次点击时跳到每个锚时,此功能非常有用
它用于停止事件的传播。您会看到两个元素都带有click事件处理程序(例如)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
如果单击内部元素(element2),它将在两个元素1和2中触发click事件。这称为“事件冒泡”。如果只想在element2中处理事件,则事件处理程序必须返回false以停止事件传播。
另一个示例是链接onclick处理程序。如果要停止链接表单的工作。您可以添加onclick处理程序并返回false。阻止事件传播到默认处理程序。
false
从事件处理程序返回将阻止与事件关联的默认操作;您也可以通过调用event.preventDefault()
或设置event.returnValue = false
(IE)来执行此操作;为了阻止事件冒泡,您必须致电event.stopPropagation()
或设置event.cancelBubble = true
(IE)
呃...在布尔函数中表示“不正确”呢?
搜索“ js,何时使用'return false;'”后,我也来到了此页面。在其他搜索结果中,有一个页面,我发现它在Chris Coyier的CSS-Tricks网站上更加有用和直接:之间的区别“回归假;” 和'e.preventDefault();'
他的文章的要旨是:
function(){return false; }
//等于
函数(e){e.preventDefault(); e.stopPropagation(); }
尽管我仍然建议阅读全文。
更新:争论使用return false的优点之后;代替e.preventDefault(); &e.stopPropagation(); 我的一位同事指出,如本文所述,return false也会停止回调执行:jQuery Events:Stop(Mis)使用Return False。
function() { return false; }
IS EQUAL TO是相等的function(e) { e.preventDefault(); e.stopPropagation(); }
,但是在纯js中,它 实际上function() { return false; }
是相等的function(e) { e.preventDefault(); }
。它不会停止传播。
我认为一个更好的问题是,为什么在评估返回值的布尔值集的情况下,不使用true / false?我的意思是,您可能拥有true / null,true / -1和其他杂项。用Javascript“ falsy”值替代,但是为什么要这么做呢?
当在函数中调用return语句时,该函数的执行将停止。如果指定,给定值将返回给函数调用者。如果省略表达式,则返回undefined。
有关更多信息,请查看的MDN文档页面return
。
仅当您在函数中有磨损(通过某些测试)或要停止某些函数时才使用false,例如,在“ onsubmit”末尾使用return false
另外,这个简短而有趣的链接可以通读 https://www.w3schools.com/jsref/event_preventdefault.asp
定义和用法
preventDefault()方法将取消事件(如果可取消),这意味着将不会发生属于该事件的默认操作。
例如,在以下情况下这可能很有用:
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
注意:并非所有事件都可以取消。使用cancelable属性来确定事件是否可取消。
注意:preventDefault()方法不会阻止事件通过DOM进一步传播。使用stopPropagation()方法进行处理。