我想创建一个链接,并使用javaScript强制链接锚点,我尝试了以下内容: -
<a id="ServerSort" href="#" style="text-decoration:underline">
效果很好,但点击<a>
链接后页面将失去当前位置。
我需要链接有一个href,因为我需要鼠标来改变光标吗?
任何人都可以提出建议吗?
答案 0 :(得分:39)
您可以使用javascript:void(0)
<a id="ServerSort" href="javascript:void(0)">
评论你不需要style="text-decoration:underline"
<小时/> 通过jQuery,你可以通过event.preventDefault()
来完成
停止活动的默认操作。
$('#ServerSort').click(function(event){
event.preventDefault(); //or return false;
});
答案 1 :(得分:18)
最好的方法是将href设置为#0
,如下所示:
<a href="#0">blabla</a>
原因如下:你永远不会在ID为0的页面上有任何内容(如果你这样做,无论如何都有问题),并且由于#0
不存在,点击事件不会带给你回到页面顶部。您不需要JavaScript来执行此操作,也不应使用JavaScript。
答案 2 :(得分:4)
.clickable {
cursor: pointer;
}
<a id="ServerSort" class="clickable">Foo</a>
答案 3 :(得分:4)
存在一些选择:
<a id="ServerSort" href="javascript:">
<a id="ServerSort" href="javascript://">
<a id="ServerSort" href="javascript:void(0)">
这些被认为是不好的做法,我绝不会推荐这样的产品。当链接到在开发阶段不存在的页面时,我通常使用第一个选项。
最好,我根本不会使用a,我在下面的例子中切换到一个范围:
<span id="ServerSort" onclick="return false">Test Link</span>
并相应地设置一个元素:
<style type="text/css">
#ServerSort {
text-decoration:underline;
}
#ServerSort:hover {
color:red;
cursor:pointer;
}
</style>
我在js中并且只是手写在这里以显示不同的方法,避免需要覆盖默认行为。
答案 4 :(得分:2)
您可以尝试:
<a id="ServerSort" href="#" style="text-decoration:underline" onclick='return false'>
或者您可以使用jQuery event.preventDefault()。