滥用<a> tag</a>

时间:2015-02-23 17:18:42

标签: jquery html html5 mobile anchor

据我了解,< 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帖子似乎很有希望:

What is the HTML tabindex attribute?

2 个答案:

答案 0 :(得分:2)

使用jQuery,你可以on('click',callback)任何元素。

仅使用a元素可能是出于辅助目的(告诉屏幕阅读器,例如,这个元素要做一些有趣的事情)。

答案 1 :(得分:1)

是的,这是一种滥用行为。

我会向他们解释Semantic HTML。每个标签都有一个目的和应该使用的上下文。

顺便说一句,<i>用于图标不一定是滥用。强烈建议使用CSS italic 样式。