空联锚(Empty-linked anchor)

2019-06-26 23:31发布

我有一个锚不会去任何地方,但有一个onclick(如<a onclick="..."></a> )。 我的问题涉及到href属性。 我应该怎么放的价值?

如果我只是省略href ,锚没有适当的装饰-当鼠标放在其上的鼠标指针的图标不会改变。

如果我使用href="#" ,然后在窗口滚动到页面顶部,当链接被点击。

如果我使用href="javascript:..." ,并把价值onclick出发javascript:页面左侧和地址栏包含JavaScript是单击链接时。

当我指的是浏览器的行为,我指的是Chrome浏览器,这我在测试它开始。

我应该是把对href当主播是不是一个实际的链接,但只存在于具备onclick执行行为?

Answer 1:

在你的onclick处理程序,将其添加到结束:

return false;

这将取消(即链接以下)的默认处理,你可以把任何你在href想(#是不比任何人差)。



Answer 2:

理想情况下 ,你会对那些禁用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;在点击处理程序结束,但是这会变得更加难看快)

虽然,说实话,你真的不应该有内嵌的JavaScript属性开始。 他们是不好的做法,一个恶梦维持,并有更好的选择那里。

编辑 :在回答您的意见,另一种方法是不引人注目的javascript :

“非侵入式JavaScript”在JavaScript编程语言是新兴技术,在万维网上的使用。 虽然这个词没有正式定义,其基本原则通常被理解为包括:

  • 从网页的结构/内容和表现的功能(以下简称“行为层”)分离
  • 最佳做法,避免了传统JavaScript编程的问题(如浏览器的不一致性和缺乏扩展性)
  • 逐步增强,以支持可能不支持高级JavaScript功能的用户代理

阅读页面的一些例子。



Answer 3:

<a href="javascript:void(0);" onclick="...">txt</a>


Answer 4:

我宁愿放弃在href(它根据W3C规范不是必需的),如果它不被使用。 为了获得预期的鼠标光标,使用CSS!

<style type="text/css">
a { cursor: pointer; }
</style>
<a onclick="go();">link</a>


Answer 5:

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

总之,描述性和不跳象#。



Answer 6:

这样做有两种方式,如果链接的ID标签的link ,你可以用href="#"在你的HTML,然后在你的JavaScript有:

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

这可以防止浏览器的正常行为。 要么

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


文章来源: Empty-linked anchor