我使用javascript:void(0)
。
原因有三。鼓励开发团队使用#
最终会导致一些人使用此函数的返回值,如下所述:
function doSomething() {
return false;
}
但是他们忘记在onclick中使用 return doSomething()
,而只是使用 doSomething()
。
避免使用 #
的第二个原因是如果被调用的函数抛出错误,最后的 return false;
将不会执行。因此开发人员还必须记住适当地处理任何错误。
第三个原因是有些情况下会动态地分配 onclick
事件属性。我更喜欢能够调用一个函数或动态地分配它,而不必专门为一种附加方法编写函数。因此,我的 HTML 标记中的 onclick
(或任何其他东西)看起来像这样:
onclick="someFunc.call(this)"
或
onclick="someFunc.apply(this, arguments)"
使用 javascript:void(0)
可以避免上述所有问题,我没有发现任何负面影响的例子。
因此,如果你是一个独立开发者,那么你可以自己做出选择,但如果你作为一个团队工作,你必须明确说明:
使用 href="#"
,确保 onclick
总是在结尾处包含 return false;
,被调用的任何函数都不会抛出错误,如果你动态地将一个函数附加到 onclick
属性上,也要确保它不会抛出错误,并返回 false
。
或者
使用 href="javascript:void(0)"
显然,第二种方法更容易交流。
void(0)
,当void 0
即可? - RobG