我正在使用Twitter的Bootstrap顶部栏。
当我点击某些导航href
时 href=#SomeDivName
按下此页面中的导航时类似:
http://twitter.github.com/bootstrap/examples/fluid.html#contact
页面向下滚动了一下。
我想点击后会出现相关部分, 但我不希望页面向下滚动。
答案 0 :(得分:6)
$('a[href="#SomeDiveName"]').on('click', false);
当您点击href属性设置为#SomeDiveName
的锚标记时,这将返回false。这将阻止元素的默认行为,在这种情况下,滚动到href属性引用的元素。
如果您有一组这些链接,那么我建议添加一个类来识别它们,以便您可以一次性选择它们:
$('.stop-this-link').on('click', false);
只要单击该元素,这将阻止具有stop-this-link
类的所有元素的默认行为。按类选择要比属性快得多。按属性搜索时,必须检查DOM中的每个元素。
请注意,在jQuery事件处理程序中返回false
与调用event.preventDefault()
和event.stopPropagation()
相同。
有关这些功能的更多信息,请参见此处:
event.preventDefault()
:http://api.jquery.com/event.preventdefault event.stopPropagation()
:http://api.jquery.com/event.stoppropagation 答案 1 :(得分:4)
而不是使用<a href="#target">
使用<a data-target="#target">
并删除href属性
答案 2 :(得分:1)
Jasper的回答是正确的,但是如果你以后绑定其他东西,你可能会有些奇怪。我倾向于使用这个:
$('.stop-this-link').on('click', function(e){ e.preventDefault() });
基本上是相同的,但重要的是它不会阻止事件在DOM上传播,代价是稍微冗长。