我目前使用jQuery的<a>标签来启动像点击事件等事情。
例如<a href="#" class="someclass">Text</a>
但我讨厌“#”使页面跳转到页面顶部。我能做什么呢?
我目前使用jQuery的<a>标签来启动像点击事件等事情。
例如<a href="#" class="someclass">Text</a>
但我讨厌“#”使页面跳转到页面顶部。我能做什么呢?
当前回答
有4种类似的方法可以防止页面在不使用JavaScript的情况下跳转到顶部:
选项1:
<a href="#0">Link</a>
选项2:
<a href="#!">Link</a>
选项3:
<a href="#/">Link</a>
选项4(不推荐):
<a href="javascript:void(0);">Link</a>
但是如果你在jQuery中处理点击事件,最好使用event. preventdefault()。
其他回答
我用过:
<a href="javascript://nop/" class="someClass">Text</a>
你也可以在处理jquery后返回false。
Eg.
$(".clickableAnchor").live(
"click",
function(){
//your code
return false; //<- prevents redirect to href address
}
);
#/技巧有效,但会向浏览器添加一个历史事件。因此,点击返回并不能像用户希望的那样工作。
美元(的身体)。(“点击”,“(href = " # "],函数(e) {e.preventDefault ()});是我去的方式,因为它适用于已经存在的内容,以及加载后添加到DOM的任何元素。
具体来说,我需要在.btn-group(Reference)中的引导下拉菜单中做到这一点,所以我做了:
美元(的身体)。('点击','。下拉菜单li a[href="#"]', function(e) {e.f preventdefault ()});
这样它是有针对性的,并且不会影响页面上的任何其他内容。
你可以只传递一个没有href属性的锚标记,并使用jQuery来执行所需的操作:
< class = " foo " > < / >的酒吧
带有href="#"的链接几乎总是应该被按钮元素替换:
<button class="someclass">Text</button>
使用带有href="#"的链接也是一个可访问性问题,因为这些链接将对屏幕阅读器可见,屏幕阅读器将显示“链接-文本”,但如果用户单击它,它不会去任何地方。