<a href="?"> when used for a JS event?</a>的理想价值

时间:2010-08-10 17:12:26

标签: javascript jquery html hyperlink

我想要在我的页面上显示一个链接,

 <a>add another</a>

但除非我添加href属性,否则看起来不像链接。我将使用jquery向其添加.click()事件,因此它实际上不需要任何其他事件。

href的最佳价值是什么? #javascript:void(0)?我担心的是,如果有人在.click()事件被添加之前点击它或其他什么。 #会将它们滚动到页面顶部,void(0)看起来有点讨厌,如果他们查看地址栏就没有信息......

7 个答案:

答案 0 :(得分:8)

理想的href属性是链接到一个URL,该URL将为未启用JavaScript的访问者执行相同的操作。如果这是不必要的,我通常使用href="#",我没有遇到任何问题。

答案 1 :(得分:6)

我的建议是让链接将他们带到一个动作,如果javascript完全关闭,它将“做正确的事”。我的意思是它应该产生与客户端操作相同的效果,如果可能的话,或者导致相同效果的一组步骤。如果这不可能或不可取,那么在应用处理程序之前,不应显示链接。也就是说,最初让它“display: none;然后在应用事件处理程序后执行show()

<a href="/something/add" class="add-item javascript-only">Add Another</a>

<script type="text/javascript">
   $(function() {
       $('.add-item').click( function() {
           ...
           return false; // important!
       });
       $('.javascript-only').show();
  });
</script>

答案 2 :(得分:4)

我通常这样做......

<a href="JavascriptDisabled.htm">Foo</a>

然后当您处理click事件时,请确保取消它(通过返回false或调用preventDefault)。

JavascriptDisabled.htm页面上有一条友好的消息,例如“您必须启用Javascript才能使用此功能”。

答案 3 :(得分:1)

如果您担心使用单个#跳到页面顶部,请尝试为锚点指定名称属性并使用#anchor-name

答案 4 :(得分:1)

octothorpe(#)=是一种链接到“页面顶部”的草率方式,实际上已经没用了。使用它可能会导致可用性和可访问性问题。

如果您的链接实际上不像HTML链接,那么它不应该是HTML链接。

如果是链接,那么它应该在href属性中有一个有效的URI。

如果你绝对必须有一个null href,那么你应该只使用:href =“javascript :;”

答案 5 :(得分:1)

另一种可能性是使用<span>元素而不是<a>并使用:hover来设置样式链接链接(更改颜色,下划线,显示手形光标或任何您喜欢的内容)。如果您已经在网站中设置其他链接的样式,这很有效。如果您允许链接显示为浏览器/用户指定,则此虚假链接可能看起来与站点中的真实链接不同。

HTML:

<span class="add-link" onclick="...">add another</span>

CSS:

.add-link:hover {
  text-decoration:underline;
  color: blue;
  cursor:pointer;
}

答案 6 :(得分:0)

<a href="#">...</a>并确保您在点击时不引人注意地使用您的javascript返回false,而您尚未为其设置链接。