【发布时间】:2012-02-05 11:48:45
【问题描述】:
什么是最好的方法,为什么?
参考?
<a href="javascript:helloworld()">link</a>
点击?
<a href="#" onClick="helloworld()">link</a>
按框架绑定(例如 jquery)?
<a id="foo" href="#">link</a>
…
$('#foo').live('click',helloworld);
【问题讨论】:
-
我认为一个相关的问题是,如果您不希望点击像
<a>标记通常那样触发页面重新加载,那么您根本就使用<a>标记。 -
当然是最后一个,因为它将内容与行为分开。
-
@Pointy 因为锚点可以通过 TAB 访问,而 SPAN 则不能。另一方面,按钮存在外观问题(使用 CSS 设置样式并不那么容易)。
-
@ŠimeVidas,将
[tabindex="0"]和[role="button"]添加到<span>,您就有了一个按钮。<a href="#">link</a>不会做任何事情,它会将视口滚动回页面顶部。如果您在顶部有一条消息说“此网站需要 JavaScript,请阅读启用 JavaScript 的说明”,将它留给非 js 用户可能会很有用。我知道要求 JavaScript 并不总是好的,但对于 webapps 来说它是有意义的。 -
@zzzzBov
tabindex属性将使 SPAN 元素可以通过 TAB 访问,但是按 ENTER 不会激活它。 (在锚点聚焦时按 ENTER 键,将其激活。)请参见此处:jsfiddle.net/NMwdj
标签: javascript html methods hyperlink bind