如何制作锚标签什么都没有?

时间:2009-05-29 07:21:06

标签: jquery html

我使用jQuery,我需要让一些锚标签不执行任何动作。

我通常这样写:

<a href="#">link</a>

然而,这指的是页面顶部!

19 个答案:

答案 0 :(得分:245)

有一些不完美的解决方案:

<强> 1。链接到假锚

<a href="#">

问题:点击链接会跳回页面顶部

<强> 2。使用“a”以外的标记

使用span标记并使用jquery处理单击

问题:打破键盘导航,必须手动更改悬停光标

第3。链接到javascript无效功能

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

问题:在IE中链接图像时中断

<强>解决方案

由于这些都有问题,我已解决的解决方案是链接到假锚,然后从onClick方法返回false:

<a href="#" onClick="return false;">

不是最简洁的解决方案,但它解决了上述方法的所有问题。

答案 1 :(得分:96)

如果您不想让它指向任何内容,您可能不应该使用<a>(锚)标记。

如果您希望某些内容看起来像链接但不像链接那样,最好使用相应的元素(例如<span>),然后使用CSS设置样式:

<span class="fake-link" id="fake-link-1">Am I a link?</span>

.fake-link {
    color: blue;
    text-decoration: underline;
    cursor: pointer;
}

另外,鉴于您标记了此问题“jQuery”,我假设您要附加点击事件处理程序。如果是这样,只需执行与上面相同的操作,然后使用类似以下JavaScript的内容:

$('#fake-link-1').click(function() {
    /* put your code here */
});

答案 2 :(得分:36)

要使它什么都不做,请使用:

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

答案 3 :(得分:35)

处理此问题的正确方法是在处理链接时使用jQuery“中断”链接

HTML

<a href="#" id="theLink">My Link</a>

JS

$('#theLink').click(function(ev){
    // do whatever you want here

    ev.preventDefault();
    ev.stopPropagation();
});

最后两次调用会停止浏览器解释点击。

答案 4 :(得分:22)

你的意思是什么?

<a href='about:blank'>blank page</a>

<a href='whatever' onclick='return false;'>won't navigate</a>

答案 5 :(得分:17)

有很多方法可以像

那样做

不要添加href属性

<a name="here"> Test <a>

您可以添加onclick事件而不是像

这样的href
<a name="here" onclick="YourFunction()"> Test <a>

或者你可以添加像这样的void函数,这是最好的方法

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

答案 6 :(得分:14)

我想你可以试试

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

我在这里看到的唯一问题是高级浏览器安全性可能会在执行javascript时提示。

虽然这是比

更简单的方法之一
<a href="#" onclick="return false;">Link</a>

这应该谨慎使用

阅读本文以获取一些指示https://web.archive.org/web/20090301044015/http://blog.reindel.com/2006/08/11/a-hrefjavascriptvoid0-avoid-the-void

答案 7 :(得分:13)

应更新此答案以反映新的网络标准(HTML5)。

此:

<a tabindex="0">This represents a placeholder hyperlink</a>

...是有效的HTML5。 tabindex属性使其像普通超链接一样可以进行键盘调焦。如前所述,您可以使用span元素,但我发现使用a元素更优雅。

请参阅:http://dev.w3.org/html5/markup/a.html
并且:http://www.w3.org/html/wg/drafts/html/master/links.html#attr-hyperlink-href

答案 8 :(得分:12)

以下是<a>代码href代码属性的三种引用方式:

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

<a href="javascript:;">link</a >

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

答案 9 :(得分:5)

确保您要停止的所有链接都有href="#!"(或任何您想要的链接),然后使用它:

jq('body').on('click.stop_link', 'a[href="#!"]',
function(event) {
     event.preventDefault();
});

答案 10 :(得分:5)

我知道这是一个老问题,但我认为无论如何我还要增加两美分:

这取决于链接将要做什么,但通常情况下,我会将链接指向可能正在显示/执行相同操作的URL,例如,如果您正在制作一些关于框弹出的内容起来:

<a id="about" href="/about">About</a>

然后使用jQuery

$('#about').click(function(e) {
    $('#aboutbox').show();
    e.preventDefault();
});

这样,非常旧浏览器(或禁用了JavaScript的浏览器)仍然可以导航到单独的关于页面,但更重要的是,Google也会选择这个并抓取关于页面的内容

答案 11 :(得分:4)

您可以拥有一个没有a属性的HTML锚点(href标记)。不要使用href属性&amp;它不会链接到任何东西:

<a>link</a>

答案 12 :(得分:3)

唯一对我有用的是上述的组合:

首先是ul中的li

<li><a onclick="LoadTab2_1()" href="JavaScript:void(0)">All Assigned</a></li>

然后在LoadTab2_1中我手动切换了tab divs

$("#tabs-2-1").hide();
    $("#tabs-2-2").show();

这是因为断开连接也会断开选项卡中的操作

当主要标签更改内容时,您还需要手动执行标签样式

$("#secTab1").addClass("ui-tabs-active").addClass("ui-state-active").addClass("ui-state-hover").addClass("ui-state-focus");
    $("#secTab1 a").css("color", "#ffffff");

答案 13 :(得分:2)

你可以通过

来完成
<a style='cursor:pointer' >Link</a>

答案 14 :(得分:1)

<a href="#" onclick="SomeFunction()"  class="SomeClass">sth.</a>
这是我的锚标签。所以在onClick =&#34;&#34;上返回false事件在这里没用。 我刚刚删除了href =&#34;#&#34;财产,它对我有用,就像下面

<a onclick="SomeFunction()"  class="SomeClass">sth.</a>

我需要添加此CSS。

.SomeClass
{
    cursor: pointer;
}

答案 15 :(得分:1)

我在WordPress网站上遇到过这个问题。下拉菜单中的标题始终具有属性href="",并且仅使用标题插件允许标准网址。最简单的解决方案是在页脚中运行此代码:

jQuery('[href=""]').click(function(e){
    e.preventDefault();
});

这可以防止空白锚点做任何事情。

答案 16 :(得分:0)

React不再支持在锚标记中使用类似href="javascript:void(0)"的函数,但这在某些情况下效果很好。

<a href="#" onClick={() => null} >link</a>

答案 17 :(得分:-1)

我知道这被标记为jQuery问题,但您也可以使用AngularJS回答这个问题。

在你的元素中,添加ng-click指令并使用$ event变量,即click事件...阻止其默认行为:

<a href="#" ng-click="doSomething($event)">

您甚至可以将$ event变量传递给函数:

{{1}}

在该函数中,您可以使用click事件执行任何操作。

答案 18 :(得分:-3)

在 HTML5 中只需删除 href 属性

<a>Your text</a>