单击锚点会将我带到底部而不是恢复之前的位置

时间:2011-04-01 19:56:09

标签: javascript jquery click position anchor

我真的很困惑这个问题。任何帮助都会很棒。

我点击了一个扩展内容的链接,当我抓住隐藏按钮,而不是带我到Expand链接时,它将我带到了底部。我已经尝试过像onclick =“fun”这样的选项()返回false“和href = javascrpit:void(0),但不能帮助。

请参阅http://jsfiddle.net/BdsyJ/此链接,然后点击“我如何最大限度地延长电池续航时间”,在底部您会看到一个隐藏按钮,该按钮应将控制权恢复为点击它而不是将页面放在底部。

谢谢你们。

2 个答案:

答案 0 :(得分:2)

我将您的ReverseDisplay()方法更改为此方法并且效果很好:

        function ReverseDisplay(d) {            
            $("#" + d).toggle();

            $('html, body').animate({
                scrollTop: $("#" + d).prev().offset().top
            }, 100);          
        }

这是一个有效的例子:

http://jsfiddle.net/hunter/BdsyJ/5/


如果你想知道; 您的HTML无效。 <li>个元素不应该有<div>个兄弟姐妹。

答案 1 :(得分:1)

您位于页面底部,因为您隐藏了太多内容。我将在您的代码中更新两件事:

  1. 缓存元素查找,因此您只需执行一次并且
  2. 使用scrollTo(0,0)或关闭页面后将页面滚动到顶部 如果你需要回滚到确切的东西,更复杂的东西 你切换的元素。
  3. 代码:

    function ReverseDisplay(d) {
      var el = document.getElementById(d);
      el.style.display = (el.style.display == "none")?"block":"none";
    }