4

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

<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>

那么任何人都可以解释两者有什么区别吗?

只是想知道他为什么总是使用回报。

谢谢

4

2 回答 2

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>
于 2012-10-20T04:11:34.553 回答
1

这里涉及两个动作。

  1. 默认行为:执行HREF
  2. 执行 onClick 事件

The events are executed first by the browser. This behavior is called Early event handling. If the event action returns false, it prevents the default action i.e. HREF.

于 2012-10-20T04:15:16.460 回答