是否可以使用锚标记而不包括href属性,而是使用JavaScript单击事件处理程序?因此我将完全省略href,甚至不让它为空(href="")。


当前回答

不带"href"的<a>标记在使用多级菜单时很方便,你需要展开下一层,但不希望菜单标签是一个活动链接。我用这种方式从来没有遇到过任何问题。

其他回答

如果你必须使用href来实现向后兼容性,你也可以使用

<a href="javascript:void(0)">link</a>

如果您不想使用该属性,则可以使用#

不带"href"的<a>标记在使用多级菜单时很方便,你需要展开下一层,但不希望菜单标签是一个活动链接。我用这种方式从来没有遇到过任何问题。

简单的回答:不。

长一点的回答:

首先,如果没有href属性,它就不是链接。如果它不是一个链接,那么它就不会是键盘(或呼吸开关,或各种其他不是基于指针的输入设备)可访问的(除非你使用HTML 5的tabindex功能,这不是普遍支持的)。控件不具有键盘访问权限是非常罕见的。

第二。当JavaScript无法运行时(因为从服务器加载很慢,Internet连接中断(例如移动火车上的移动信号),JS被关闭,等等),你应该有一个替代方案。

通过不引人注目的JS使用渐进增强。

只需在您的工作组件中添加波纹管代码以删除此警告,就是这样。

/* eslint-disable jsx-a11y/anchor-is-valid */

在某些浏览器中,如果你没有给出href属性,你会遇到问题。我建议你这样写代码:

<a href="#" onclick="yourcode();return false;">Link</a>

你可以用你自己的函数或逻辑替换code(),但记得添加return false;最后的声明。