Best way to create an <a> link with empty href
我想创建一个链接,并使用javascript强制链接锚定,我尝试了以下操作:
它工作得很好,但点击链接后,页面将失去当前位置。
我需要链接有一个href,因为我需要鼠标在浏览时更改光标?
有人能提出建议吗?
- 一台javascript:void(0)工作得很好。
- 您可以删除Href,然后在CSS中执行a:hover{ cursor: pointer; }。
- 如果它不链接到任何地方,它就不是真正的链接…出于这个原因,我更喜欢cursor: pointer;而不是javascript:void(0),而且因为如果禁用了javascript,链接就会断开。
- 空的href的原因可能是希望禁用一个链接,如果这样,您可以在style="pointer-events:none;"中使用css,或者参见stackoverflow.com/a/32930539/1066234。
您可以使用javascript:void(0)。
国王评论说,你不需要江户十一〔一〕。
通过jquery,您可以通过event.preventdefault()来完成它。
Stop the default action of the event .
1 2 3
| $('#ServerSort').click(function(event){
event.preventDefault(); //or return false;
}); |
- @国王收到,先生。
- 使用javascript:void(0)无效——whatwg.org/specs/web apps/current work/multipage/&hellip;
- @jsumner创建一个有效的链接是无效的,但是当然使用javascript:前缀不会创建任何有效的链接,它看起来像一个链接,它允许您在单击时运行一些脚本,在这种情况下,它在单击时不做任何操作。在锚上使用javascript:前缀的特性是由几乎主要的浏览器实现的,我相信它仍然会得到支持。
- @关键是它没有创建有效的链接。我来解释一下——stackoverflow.com/a/12933130
- @我和JSumners也同意它不会创建有效的链接,明白吗?看来你不明白我之前的评论。对于OP的要求,他显然不想要一个有效的链接(从他的评论**…使用javascript强制链接锚…**),他希望点击链接会运行一些脚本,所以使用javascript:前缀是正确的选择,尽管这可能不是最好的选择,因为我们可以使用另一个元素来模拟链接,而使用javascript:前缀将需要不推荐的内联脚本。
- 不,我不明白。你不能说"创建有效链接是无效的",然后在同一句话中说"它是无效链接"。这和在href属性中使用无效协议一样有意义。
最好的方法是将href设置为#0,如下所示:
原因如下:您将永远不会在ID为0的页面上有任何内容(如果有,无论如何都有问题),而且由于#0不存在,单击事件不会使您返回页面顶部。您不需要JavaScript来完成这项工作,也不应该使用JavaScript。
- 嘿,Bene,我之前尝试过这个建议,但是出于某种原因,点击后这个建议会将"0"附加到现有的URL上。例如"www.blabla.com/0"。有什么想法吗?
- 好吧,如果您不阻止这个操作,它将把href添加到URL中,就像浏览器一直做的那样。我的回答是为了防止滚动回顶部的行为。你想做什么?
存在一些选项:
这些都被认为是不好的做法,我永远不会推荐这样的东西用于生产。我通常在链接到开发阶段不存在的页面时使用第一个选项。
最好,我根本不使用,我在下面的示例中切换到一个跨度:
1
| <span id="ServerSort" onclick="return false">Test Link</span> |
并相应地设置元素样式:
1 2 3 4 5 6 7 8 9
| <style type="text/css">
#ServerSort {
text-decoration:underline;
}
#ServerSort:hover {
color:red;
cursor:pointer;
}
</style> |
我在编写JS,只是在这里手工编写一个来显示一种不同的方法,它避免了重写默认行为的需要。
1 2 3
| .clickable {
cursor: pointer;
} |
- 啊,我同时也在打类似的东西。+不管元素是什么,使用CSS都可以轻松地控制1指针。如果只需要一个指针,就不需要锚元素。带有class="clickable"的span也可以工作。
- 除了使用锚之外,还允许在某个点添加真正的href属性。
- 因此,为什么我会说"如果你所需要的只是一个指针…":)如果以后可能需要使用href,那么一定要将其作为锚定。
- 默认情况下,使用href还将提供键盘焦点可用性。
你可以试试:
或者可以使用jquery event.preventDefault()。