2012-01-15 427 views
1

我发生这种奇怪的事情: 当点击跨越导航内容必须切换。 一切工作除了当你点击一个跨度的页面跳转到它(跨度将正确的时间)。我发现有关页面跳转的内容是关于锚标签并返回false的;但没有跨度。 在我看来,切换内容不能怪,因为从来没有只有一个div显示:none(如果是这样的话,页面应跳转到顶部而不是跳转到跨度,对不对?) 防止任何操作似乎不适用于跨度。页面跳转span.click()

$("#subnavi span").click(function(){ 
    $("#inner-content div:visible").animate({height: "toggle", opacity: "toggle"}, "slow"); 
    $("#content-"+this.id).animate({height: "toggle", opacity: "toggle"}, "slow"); 
    $("#subnavi span").attr("class", ""); 
    $(this).attr("class", "active"); 
}); 

如果解释是混乱的,去这里:http://gaming-siblings.com/v2.0/#news和点击左侧导航统计。该页面将跳转至您刚刚单击的跨度,并由于div的高度向后滚动一点。为什么会跳到跨度?

这可能不奇怪,但合理。我只是不明白:-)

我已经尝试了2天,现在休息一下,因为这主要是帮助,但不是这次。

任何想法/解决方案?如上所述返回false;或preventDefault()在我尝试时不起作用(因为它的跨度我猜)。

document.location.hash = "#" + this.id; 

这是—要添加的哈希页面的网址,以便页面会自动滚动到“跳”的原因:

回答

0

我在你click()功能看准了这一点额外的行该锚点(在这种情况下,它将滚动到已添加id的单击元素)。

没有真正的解决方法,我知道这不会完全重新加载页面。你最好的选择是只使用单独的页面或根本不使用哈希。

+0

呵呵,我想我在注意到跳转后添加了哈希变化。从来没有想过改变散列实际上像散列锚一样工作。感谢您指出了这一点。这是非常有道理的。我通过使用不存在的散列ID来创建解决方法,因此无法跳转。我想这有点肮脏,但它的工作原理。 – user1021052 2012-01-15 11:37:10