我应该为 JavaScript 操作使用什么元素?
执行诸如播放/暂停/停止/新建/打开/保存/打印/关闭等操作的操作。
<a id="play" href="#">Play</a>
<a href="#play">Play</a>
<button id="play" tabindex="0">Play</button>
<div id="play" role="button" tabindex="0">Play</div>
我看到很多人使用锚点 <a>
和 href="#"
但这感觉不太语义化,感觉锚点是用于指向资源的超链接,而不是用于执行操作的操作.然后你必须用 event.preventDefault
来破解它(即 return false
)。
我很少看到人们使用 <button>
元素,但这不是应该使用的吗?
原文由 Fred 发布,翻译遵循 CC BY-SA 4.0 许可协议
TLDR;您可以在新选项卡/窗口中打开锚链接,但不能在按钮中打开。
这是一个经验法则:
对于导航,只需使用 锚点,将其设置为按钮并让它使用它的
href
属性就可以了。对于快速操作(播放、暂停、停止、+1 喜欢),只需使用它没有的 按钮
href
是有原因的!考虑这段代码。
造型
它们看起来几乎一样(几乎没有理由)唯一的问题是你必须撤消一些
button
比如border
&background
-but-but使用锚点,您不会获得使用按钮获得的点击弹出动画。功能性
但由于锚点
<a>
需要<a href="some/path">
才能工作 ,即使它只是#
e.preventDefault()
单击之后必须使用锚点,除非你需要导航,除非你需要导航---
在你的javascript中阻止它。