是否可以使用锚标记而不包括href属性,而是使用JavaScript单击事件处理程序?因此我将完全省略href,甚至不让它为空(href="")。
当前回答
在HTML5中,使用不带href属性的a元素是有效的。它被认为是一个“占位符超链接”。
例子:
<a>previous</a>
在w3c锚标记参考页面上查找“占位符超链接”:https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element。
维基上也有提到: https://www.w3.org/wiki/Elements/a
占位符链接用于想要使用锚元素,但不让它导航到任何地方的情况。这对于在导航菜单或面包屑跟踪中标记当前页面非常方便。(旧的方法是使用span标记或带有名为“active”或“current”的类的锚标记来设置样式,并使用JavaScript来取消导航。)
如果您希望在运行时通过JavaScript动态设置链接的目的地,占位符链接也很有用。您只需设置href属性的值,锚标记就可以单击了。
参见:
https://stackoverflow.com/a/10510353/19112 http://www.html5in24hours.com/2012/06/8-ways-to-get-started-with-html5-today/ http://webdesign.about.com/od/html5tutorials/qt/html5-placeholder-links.htm
其他回答
我的建议是使用<a href="#"></a>
如果你正在使用JQuery,还记得使用:
.click(function(event){
event.preventDefault();
// Click code here...
});
简单的回答:不。
长一点的回答:
首先,如果没有href属性,它就不是链接。如果它不是一个链接,那么它就不会是键盘(或呼吸开关,或各种其他不是基于指针的输入设备)可访问的(除非你使用HTML 5的tabindex功能,这不是普遍支持的)。控件不具有键盘访问权限是非常罕见的。
第二。当JavaScript无法运行时(因为从服务器加载很慢,Internet连接中断(例如移动火车上的移动信号),JS被关闭,等等),你应该有一个替代方案。
通过不引人注目的JS使用渐进增强。
只需在您的工作组件中添加波纹管代码以删除此警告,就是这样。
/* eslint-disable jsx-a11y/anchor-is-valid */
从可访问性的角度来看,<没有href的>不是可选项卡的,所有链接都应该是可选项卡的,所以如果你没有href,添加一个tabindex='0"。
在某些浏览器中,如果你没有给出href属性,你会遇到问题。我建议你这样写代码:
<a href="#" onclick="yourcode();return false;">Link</a>
你可以用你自己的函数或逻辑替换code(),但记得添加return false;最后的声明。
推荐文章
- 禁用表单自动提交按钮单击
- 链接重新加载当前页面
- 我如何使一个HTML文本框显示空时提示?
- 如何使HTML文本不可选
- 没有定义Electron require()
- JavaScript表单提交-确认或取消提交对话框
- HTML5中的画布宽度和高度
- Ng-app和data-ng-app有什么区别?
- 内容=“X-UA-Compatible IE = 9;IE = 8;IE = 7;IE =边缘”
- 停止/关闭由navigator.mediaDevices.getUserMedia打开的网络摄像头流
- 我如何禁用使用CSS的表单字段?
- 我真的需要将“&”编码为“&”吗?
- 使页脚正确地粘在页底
- 为什么<fieldset>不能是伸缩容器?
- 如果容器元素包含浮动元素,为什么容器元素的高度不增加?