代码之家  ›  专栏  ›  技术社区  ›  SiberianGuy

不带Href的锚定

  •  8
  • SiberianGuy  · 技术社区  · 14 年前

    在没有href(javascript驱动)的情况下,最好的跨浏览器方式是什么?最明显的是使用作为锚定,但它会使页面跳转…

    5 回复  |  直到 7 年前
        1
  •  17
  •   mr.b Scott Lystig Fritchie    11 年前

    一个不做任何事情的链接,它甚至不会跳转:

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

    更新: 如相关文件所示(由Ambrosia指出),因为 void(0) 收益率 undefined ,最好将上述代码实际编写为:

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

    当然,除非重新定义了未定义。

        2
  •  6
  •   karim79    14 年前

    这些不会跳:

    ​<a href="#null">Click</a>
    ​<a href="#n">Click</a>
    <a href="#undefined">Click</a>​
    

    然而,它们是毁灭灵魂和极其丑陋的。

        3
  •  6
  •   sebarmeli    13 年前

    你应该 返回假 来自与锚关联的单击处理程序。给定HTML:

    <a id="example" href="/whatever"/>
    

    JS应该如下所示:

    document.getElementById('example').onclick = customAnchorReturn;
    function customAnchorReturn() {
        // do stuff
        return false;
    }
    

    或者使用jquery:

    $('a#example').click(function(){
        // do stuff
        return false;
    });
    

    这样,JS将不受干扰,如果禁用JS,锚将仍然工作。

        4
  •  4
  •   great_llama    14 年前

    如果您对click事件作出反应,只需确保返回false,并且无论是哈希还是其他URL,都将忽略href中的内容。

    <a href="#anything" onclick="doSomething(); return false;">link</a>
    
        5
  •  1
  •   Míng    14 年前

    也许这也没问题:

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