什么情况下 `return false` 与 `e.preventDefault()` 做的事情不同? [复制]

Posted

技术标签:

【中文标题】什么情况下 `return false` 与 `e.preventDefault()` 做的事情不同? [复制]【英文标题】:What are the cases when `return false` does not do the same thing as `e.preventDefault()`? [duplicate] 【发布时间】:2011-09-17 00:31:48 【问题描述】:

可能重复:javascript: event.preventDefault() vs return false

return false 不做与e.preventDefault() 相同的事情的情况有哪些?

(注意我不是在谈论 jquery 事件.. 而是一般的 javascript 事件)

我能想到的唯一情况是超链接上的click 事件(如果您在处理程序中返回 false,您仍将被重定向到该网站)

请注意,如果它不是click 事件而是超链接上的mousedown 事件,则返回 false 的工作方式与 e.preventDefault() 相同

【问题讨论】:

【参考方案1】:

我相信return false同时等同于e.preventDefault();e.stopPropagation();。但是,我建议您使用这些函数并返回 false 以实现未来和过去的浏览器兼容性:

$("#something").click(function(e)
    alert("Something was clicked");
    e.preventDefault();
    return false;
);

广告@m

【讨论】:

以上是关于什么情况下 `return false` 与 `e.preventDefault()` 做的事情不同? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

关于return false

js中return;return truereturn false;区别

js中return;return truereturn false的区别

js方法中return怎么返回值?

e.preventDefault()和e.stopPropagation()以及return false的作用和区别

return的用法