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

空链接锚

  •  6
  • core  · 技术社区  · 17 年前

    我有一个锚,它不去任何地方,但有一个onclick(例如。 <a onclick="..."></a> href 属性我应该把什么作为价值呢?

    如果我省略 href ,锚点没有适当的装饰——鼠标指针图标在鼠标置于其上时不会改变。

    href="#" ,然后单击链接时,窗口滚动到页面顶部。

    如果我使用 href="javascript:..." 并将 onclick 诉讼程序 javascript: ,当单击链接时,页面将显示在左侧,地址栏包含Javascript。

    当我提到浏览器行为时,我指的是Chrome,我正在测试它。

    我应该投什么 href 当锚点不是一个实际的链接,但存在只是为了拥有 表演行为?

    6 回复  |  直到 14 年前
        1
  •  12
  •   Paolo Bergantino    17 年前

    理想的 对于禁用Javascript的用户,您将有一个选项:

    <a href="degrade_option.html" onclick="return fancy_option();">do the option!</a>
    

    <a href="#" onclick="return do_something();">do something</a>
    

    但你必须确保 do_something 返回 false . (或者您可以添加 return false;

    :针对您的评论,备选方案是 unobtrusive javascript :

    “不引人注目的JavaScript”是JavaScript编程语言中的一种新兴技术,在万维网上使用。虽然该术语没有正式定义,但其基本原则通常包括:

    • 将功能(“行为层”)与网页的结构/内容和表示分离
    • 渐进式增强,以支持可能不支持高级JavaScript功能的用户代理

        2
  •  11
  •   Jon Grant    17 年前

    在onclick处理程序中,将以下内容添加到末尾:

    return false;
    

    这将取消默认处理(即跟随链接),您可以在href中放入任何您想要的内容(#与任何内容一样好)。

        3
  •  4
  •   Colin    17 年前
    <a href="javascript:void(0);" onclick="...">txt</a>
    
        4
  •  1
  •   Jeroen Versteeg    15 年前

    如果未使用href,我宁愿删除它(根据W3C规范,它不是必需的)。要获得预期的鼠标光标,请使用CSS!

    <style type="text/css">
    a { cursor: pointer; }
    </style>
    <a onclick="go();">link</a>
    
        5
  •  0
  •   igl    13 年前
    <a href="javascript:;">Foo</a>
    

    简短、描述性且不会像#那样跳跃。

        6
  •  0
  •   reectrix    12 年前

    如果链接的id标记是 link href="#" 在HTML中,然后在JavaScript中:

    $('#link').click(function(evt) {
     // code goes here
     evt.preventDefault();
    });
    

    这会阻止浏览器的正常行为。或

    $('#link').click(function(evt) {
     // code goes here
     return false;
    });
    
    推荐文章