我使用jQuery,我需要让一些锚标签不执行任何动作。
我通常这样写:
<a href="#">link</a>
然而,这指的是页面顶部!
答案 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>
这应该谨慎使用
答案 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>