我应该return false;
每个function
实际需要用户或浏览器触发的操作吗?
例如:
$('myDiv').click(function(){ ... });
或
function myFunction(){ ... }
第二个稍后会出现在click
函数下面作为第一个函数。
这个问题适用于JQuery和纯Javascript。
答案 0 :(得分:4)
使用return false
将阻止调用更多侦听器,以及默认事件(例如单击链接时离开页面)。如果那是什么,那么return false
,否则不会。
使用e.preventDefault()
仍将调用其他侦听器,但默认反应将不会触发(“不要离开页面,单击链接时”)。
如果你不这样做,后来被叫的听众可以使用e.preventDefault()
和/或return false
。
使用jQuery,不需要同时执行这两个操作(e.preventDefault(); return false;
)。如果你return false
,JQuery会为你调用preventDefault。
至于链接的默认事件,我发现href="javascript:void(0)"
工作得最好;即使JavaScript已停用。
答案 1 :(得分:0)
不,这将使该事件无法履行其正常职责。
答案 2 :(得分:0)
你可以在函数的任何地方使用event.preventDefault()而不是return false。
$('#some-id').click(function(e) {
e.preventDefault();
// …;
});
和简单的javascript:
document.getElementById('some-id').onclick = function(e) {
e.preventDefault();
// …;
};
似乎你在谈论已经有默认行为的事件(比如<a>
元素)。我这样回答。但是对于没有的元素,没有必要