我使用一组a
标签做tab
切换,给a标签加上href="#"
的话点击a标签总是会跳到顶部,加javascript:void(0)
的话感觉有的时候点击的反应速度变慢,偶尔会卡,请教下各位如果a
标签不加href
会有什么影响,不符语义化或者对优化什么的有啥影响吗?
其实 href="#"
的话可以通过 preventDefault()
方法阻止默认的链接跳转行为
如果用 jQuery, 则可以
$("#myLink").click(function () {
// Your event handlers here
return false;
});
一个 a
没有 href
也没有 tabindex
就不会被 tab 到
HTML 4 认为没有 href
(但是有 name
) 的 a
是命名锚点
HTML 5 认为没有 href
的 a
是链接占位符
(反正对浏览器来说行为都是一样的
可以不加,但有些浏览器鼠标样式就没有手势了,然后IE6下好像还有个什么问题来着,忘了·加个href="javascript:void(0);"吧
可以不加。只不过不加href,就不能跳转页面了,而且也没有手势
javascript:void(0)
会卡真的只是你的感觉吧。如果这么纠结href,为何一定要用a标签呢
a
标签如果不加href
属性的话,仅仅不能够导航,在网站的设计的时候,很多情况下会用a
标签做一些其它的事情,比如按钮,就看你自己喜欢怎么使用了。
点击a标签为了防止跳到顶部,或者加javascript:void(0)为了防止感觉卡,可以这样写 href="###" 。
a标签的href其实可写可不写,如果你想让他不跳转,方法有如下:
1.href="javascript:viod(0)";
或者href="javascript:;"
2.在其点击事件设置,如
a.onclick = function(){
return false;
}
3.归根结底的本质:为什么点击之后会跳转,因为这是a标签的默认行为,可以通过阻止他的默认行为来实现。
a.onclick = function(e){
e.preventDefault ? e.preventDefault() : e.returnValue = false;
}
a不加标签的话就类似于span的作用...然后不能跳转等等。你要防止跳到顶部,可以采用javascript事件传递。在a属性里面为click添加事件比如<a href="#" click="a(event)">
然后在script里面写function a(event){
event.preventDefault();
}
就好了
当然可以不加,不加的话就不是超链接了,会丢失超链接的一些特有性质,比如css样式