我应该归还假每个需要触发的功能?

时间:2013-10-31 23:25:20

标签: javascript jquery

我应该return false;每个function实际需要用户或浏览器触发的操作吗?

例如:

$('myDiv').click(function(){ ... });

function myFunction(){ ... }

第二个稍后会出现在click函数下面作为第一个函数。

这个问题适用于JQuery和纯Javascript。

3 个答案:

答案 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>元素)。我这样回答。但是对于没有的元素,没有必要