在任何函数ex之前使用return有什么区别:“return Buy()”或“Buy()”

时间:2012-10-20 04:07:31

标签: javascript

我注意到我的一个朋友正在使用它。

<a href="#" onclick="return Buy();">» <b class="font_bigger"><span id="buy_title">Buy</span> for <span class="points_in" id="buy_value">$1,691</span></b></a>

如果我使用它,我感觉没有改变。

<a href="#" onclick="Buy();">» <b class="font_bigger"><span id="buy_title">Buy</span> for <span class="points_in" id="buy_value">$1,691</span></b></a>

那么任何人都能解释两者的区别吗?

只是好奇地知道为什么他总是使用回归。

由于

2 个答案:

答案 0 :(得分:8)

在第一个示例中,将从onclick处理程序返回一个值。这可以用于return false,这将阻止默认行为。

<a href="#" onclick="return Buy();">» <b class="font_bigger"><span id="buy_title">Buy</span> for <span class="points_in" id="buy_value">$1,691</span></b></a>

在第二个示例中,事件处理程序将简单地运行,事件将传播,并且无论事件处理程序返回任何值,都将执行默认行为。

<a href="#" onclick="Buy();">» <b class="font_bigger"><span id="buy_title">Buy</span> for <span class="points_in" id="buy_value">$1,691</span></b></a>

答案 1 :(得分:1)

这里涉及两个动作。

  1. 默认行为:执行HREF
  2. 执行onClick事件
  3. 事件首先由浏览器执行。此行为称为 Early event handling 。如果事件操作返回false,则会阻止默认操作,即HREF