据我所知,< A >标记是“锚”标记,它有三个目的:
1)描述并命名页面<a name="foo"/>上的项目
2)当单击<a href="http://www.yahoo.com">Yahoo!</a>时,将用户发送到另一个页面
3)当单击<a href="#foo">Foo!</a>时,将用户发送到同一页面中的另一个位置
有人向我解释说,< a >标记是跨浏览器通用处理的唯一的触摸/单击事件,为了实现这种兼容性,我们需要劫持它。我对此表示怀疑--如果浏览器能够显示使用JQuery (和CSS2 2/3!)的网站,浏览器也应该能够处理自定义的onclick()事件,而不需要锚点标记。
现在,使用<A>标记处理所有可单击的事件已成为项目中的标准操作过程。在代码中,我们必须防止默认(否则页面跳转到顶部),然后处理愉快的业务。我强烈认为这是滥用标记的目的,就像一些框架劫持<i>标记以显示图标一样。
IMO,如果您想要一个可选择的LI列表,您将为每个LI项分配一个"onclick“事件处理程序。因为没有默认操作,所以没有必要担心防止违约。
因为这是StackOverflow,所以我需要回答一个问题:这是目前规定的滥用< A >标记的行为吗?
编辑:为了便于访问(能够通过对象(A允许但LI不允许)选项卡),这篇关于在安莉上设置StackOverflow的TabIndex帖子看起来很有希望:
发布于 2015-02-23 17:25:14
通过使用jQuery,您可以on('click',callback)任何元素。
只使用a元素可能是出于可访问性的目的(例如,告诉屏幕阅读器这个元素是为了做一些有趣的事情)。
发布于 2015-02-23 17:25:19
是的,这是一种虐待。
我会解释一下关于语义HTML的事情。每个标记都有使用它的目的和上下文。
顺便说一句,图标使用<i>并不一定是滥用。强烈建议采用斜体样式的CSS。
https://stackoverflow.com/questions/28679482
复制相似问题