据我了解,< A >
标记是“锚点”标记,它有三个用途:
1)在页面<a name="foo"/>
2)点击<a href="http://www.yahoo.com">Yahoo!</a>
3)点击<a href="#foo">Foo!</a>
向我解释说,< a >
标记是浏览器中唯一普遍处理的触摸/点击事件,我们需要劫持它以实现此兼容性。我怀疑这一点 - 如果浏览器能够显示使用JQuery(和CSS2 / 3!)的网站,浏览器也应该能够处理自定义onclick()
事件而无需锚标记。
目前,项目中的标准操作程序是使用<A>
标记处理所有可点击事件。在代码中,我们必须防止默认(否则页面跳转到顶部),然后处理我们的快乐业务。我强烈认为这会滥用标记的目的,就像一些框架劫持<i>
标记以显示图标一样。
IMO,如果你想要一个可选的LI列表,你可以为每个LI项分配一个“onclick”事件处理程序。由于没有默认操作,因此无需担心防止默认操作。
由于这是StackOverflow,我需要回答一个问题:这是当前规定的行为滥用< A >
标签的目的吗?
编辑:出于可访问性的目的(能够通过对象进行选项卡,A允许但LI没有),这个在LI上设置TabIndex的StackOverflow帖子似乎很有希望:
答案 0 :(得分:2)
使用jQuery,你可以on('click',callback)
任何元素。
仅使用a
元素可能是出于辅助目的(告诉屏幕阅读器,例如,这个元素要做一些有趣的事情)。
答案 1 :(得分:1)