当我希望某个链接不执行任何操作而仅响应javascript操作时,避免链接滚动到页面顶部的最佳方法是什么?
我知道几种方法,它们似乎都可以正常工作:
<a href="javascript:void(0)">Hello</a>
要么
<a id="hello" href="#">Hello</a>
<script type="text/javascript>
$(document).ready(function() {
$("#toto").click(function(){
//...
return false;
});
});
</script>
乃至 :
<a id="hello" href="#">Hello</a>
<script type="text/javascript>
$(document).ready(function() {
$("#toto").click(function(event){
event.preventDefault();
//...
});
});
</script>
你有什么喜好吗?为什么呢?在什么条件下?
PS:当然,以上示例假定您使用的是jquery,但是mootools或prototype的等效项是。
捆绑:
javascript:
URL总是令人恐惧。回应:
return false
表示preventDefault
和stopPropagation
,因此,如果您关心父元素接收事件通知,则含义不同。preventDefault
/ stopPropagation
通常必须在IE中(returnValue
/ cancelBubble
)拼写不同。然而:
<a>
并不是真正的理想标记。如果有人尝试单击鼠标中键,或将其添加到书签,或链接具有的其他任何功能,它都会出错。#thatelementsid
并使用不引人注目的脚本从链接名称中获取元素ID。您还可以嗅探location.hash
文档上的加载以打开该元素,因此该链接在其他上下文中变得很有用。<input type="button">
或<button type="button">
。您可以使用CSS设置样式,使其看起来像链接而不是按钮(如果需要)。<span>
。您可以添加一个tabindex
属性,以使其在大多数浏览器中都可以通过键盘访问,尽管这实际上并没有得到适当的标准化。您还可以在其上检测到诸如空格或Enter之类的按键来激活。这虽然不尽如人意,但仍然很受欢迎(例如,SO就是这样)。<input type="image">
。这具有具有完全视觉控制的按钮的可访问性优点,但仅适用于纯图像按钮。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句