创建<a> link with empty href</a>的最佳方式

时间:2014-04-08 14:57:30

标签: javascript jquery html css html5

我想创建一个链接,并使用javaScript强制链接锚点,我尝试了以下内容: -

<a id="ServerSort" href="#" style="text-decoration:underline">

效果很好,但点击<a>链接后页面将失去当前位置。

我需要链接有一个href,因为我需要鼠标来改变光标吗?

任何人都可以提出建议吗?

5 个答案:

答案 0 :(得分:39)

您可以使用javascript:void(0)

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

King King

评论你不需要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()