我有一个锚不会去任何地方,但有一个onclick(如<a onclick="..."></a>
)。 我的问题涉及到href
属性。 我应该怎么放的价值?
如果我只是省略href
,锚没有适当的装饰-当鼠标放在其上的鼠标指针的图标不会改变。
如果我使用href="#"
,然后在窗口滚动到页面顶部,当链接被点击。
如果我使用href="javascript:..."
,并把价值onclick
出发javascript:
页面左侧和地址栏包含JavaScript是单击链接时。
当我指的是浏览器的行为,我指的是Chrome浏览器,这我在测试它开始。
我应该是把对href
当主播是不是一个实际的链接,但只存在于具备onclick
执行行为?
在你的onclick处理程序,将其添加到结束:
return false;
这将取消(即链接以下)的默认处理,你可以把任何你在href想(#是不比任何人差)。
理想情况下 ,你会对那些禁用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功能的用户代理
阅读页面的一些例子。
<a href="javascript:void(0);" onclick="...">txt</a>
我宁愿放弃在href(它根据W3C规范不是必需的),如果它不被使用。 为了获得预期的鼠标光标,使用CSS!
<style type="text/css">
a { cursor: pointer; }
</style>
<a onclick="go();">link</a>
<a href="javascript:;">Foo</a>
总之,描述性和不跳象#。
这样做有两种方式,如果链接的ID标签的link
,你可以用href="#"
在你的HTML,然后在你的JavaScript有:
$('#link').click(function(evt) {
// code goes here
evt.preventDefault();
});
这可以防止浏览器的正常行为。 要么
$('#link').click(function(evt) {
// code goes here
return false;
});