2012-02-10 74 views
2

我使用Twitter的引导顶栏。页面向下滚动点击HREF =时#SomeDivName

当我在一些导航HREF

href=#SomeDivName

点击一样,当你按下导航在这个页面:

http://twitter.github.com/bootstrap/examples/fluid.html#contact

页面滚动下来一点。

我想一下, 后,相关板块将出现,但我不想让页面向下滚动。

回答

6
$('a[href="#SomeDiveName"]').on('click', false); 

当你锚标记上单击设置为#SomeDiveName href属性这将返回false。这将阻止元素,在这种情况下是要滚动到其href属性是指元素的默认行为。

如果你有一组这些链接的话,我会建议增加一类,以确定他们,你可以一次全部选中:

$('.stop-this-link').on('click', false); 

这将阻止默认行为与所有元素stop-this-link类,每当元素被点击。按类别选择比属性选择快得多。按属性搜索时,必须检查DOM中的每个元素。

请注意,在jQuery事件处理函数中返回false与调用:event.preventDefault()event.stopPropagation()相同。

有关这些功能的详细信息请看这里:

+0

你能不能传递'FALSE'到'.on'这样呢?不应该是'.on('click',function(){return false;});'? – 2012-02-10 21:41:30

+2

我不记得是谁,但有人对SO向我展示了大约一个星期前。 'function(){return false'}'做什么?它返回'false'。那么'false'也会返回'false' :)。如果你想要做的只是防止默认的行为或事件冒泡,那么简单的代码就可以简化代码。 – Jasper 2012-02-10 21:42:33

+0

但是'function(){return false'}'是'function',其中'false'是'boolean'。我想jQuery非常聪明,想出来。 – 2012-02-10 21:44:20

1

Jasper的答案是正确的,但如果你绑定其他的东西,你可能会得到一些怪事后来。我倾向于使用这样的:

$('.stop-this-link').on('click', function(e){ e.preventDefault() }); 

实质上是一样的,但重要的是它不会停止的事件了DOM的传播,在稍微更详细的成本。

4

代替使用<a href="#target">使用<a data-target="#target">并取出href属性

+0

这在我的结尾没有奏效。想知道是否有任何其他更改,我必须做,才能获得所需的功能 – adi 2015-11-11 05:45:37

+0

谢谢。它在我的代码上工作。 – 2017-06-21 05:06:04

相关问题