是否可以使用锚标记而不包括href属性,而是使用JavaScript单击事件处理程序?因此我将完全省略href,甚至不让它为空(href="")。
当前回答
如果没有href属性,标记也可以使用。与这里的许多答案相反,当没有href时,实际上有创建锚的标准原因。从语义上讲,“a”意味着锚或链接。如果你把它用在任何跟这个意思一样的地方,那就没问题。
不带href的a标记的一个标准用法是创建命名链接。这允许你使用一个带有name=blah的锚,稍后你可以创建一个带有href=#blah的锚来链接到当前页面的指定部分。但是,这已经被弃用了,因为您也可以以相同的方式使用id。举个例子,你可以使用id=header的header标签,然后你可以使用指向href=#header的锚。
然而,我的观点并不是建议使用name属性。只提供一个不需要href的用例,并解释为什么不需要href。
其他回答
我的建议是使用<a href="#"></a>
如果你正在使用JQuery,还记得使用:
.click(function(event){
event.preventDefault();
// Click code here...
});
如果你必须使用href来实现向后兼容性,你也可以使用
<a href="javascript:void(0)">link</a>
如果您不想使用该属性,则可以使用#
如果没有href属性,标记也可以使用。与这里的许多答案相反,当没有href时,实际上有创建锚的标准原因。从语义上讲,“a”意味着锚或链接。如果你把它用在任何跟这个意思一样的地方,那就没问题。
不带href的a标记的一个标准用法是创建命名链接。这允许你使用一个带有name=blah的锚,稍后你可以创建一个带有href=#blah的锚来链接到当前页面的指定部分。但是,这已经被弃用了,因为您也可以以相同的方式使用id。举个例子,你可以使用id=header的header标签,然后你可以使用指向href=#header的锚。
然而,我的观点并不是建议使用name属性。只提供一个不需要href的用例,并解释为什么不需要href。
简单的回答:不。
长一点的回答:
首先,如果没有href属性,它就不是链接。如果它不是一个链接,那么它就不会是键盘(或呼吸开关,或各种其他不是基于指针的输入设备)可访问的(除非你使用HTML 5的tabindex功能,这不是普遍支持的)。控件不具有键盘访问权限是非常罕见的。
第二。当JavaScript无法运行时(因为从服务器加载很慢,Internet连接中断(例如移动火车上的移动信号),JS被关闭,等等),你应该有一个替代方案。
通过不引人注目的JS使用渐进增强。
在某些浏览器中,如果你没有给出href属性,你会遇到问题。我建议你这样写代码:
<a href="#" onclick="yourcode();return false;">Link</a>
你可以用你自己的函数或逻辑替换code(),但记得添加return false;最后的声明。