【问题标题】:Maintain Scroll position after div.toggle (JQUERY)在 div.toggle (JQUERY) 之后保持滚动位置
【发布时间】:2014-04-16 13:15:55
【问题描述】:

如何在 JQUERY 切换事件后保持页面滚动位置,我已经搜索和研究但找不到任何解决方案来解决这个问题。

<script src="Scripts/_hideShowDiv/jquery-1.3.2.min.js" type="text/javascript"></script>
     <script type="text/javascript">
         $(document).ready(function () {
             $('#adddriverpanel').hide();

             $('a#adddrivertrigger').click(function () {
                 $('#adddriverpanel').toggle(400);

             });


         });
    </script>

【问题讨论】:

  • 您遇到了什么问题? .hide() 和 .toggle() 与滚动位置无关,所以我认为如果您解释为什么滚动位置有问题会有所帮助。 IE:是什么变化导致了问题?考虑发布一个 jsfiddle 或扩展您的代码/解释以包含您正在尝试做的事情。
  • 当我点击显示我的 div 时,它会将我带到我的页面顶部
  • 好吧,我不想问这样一个愚蠢的问题,但是您是否偶然在您的 html 中有一个 achor 标记 (a),其 id 或名称为 '#adddrivertrigger' 而不仅仅是 'adddrivertrigger '?为了详细说明我的意思,也许您应该发布您的 HTML,因为该 jquery 中没有任何内容可以更改您的滚动位置。我认为您的页面中有一个 #(深层链接)引用导致视图发生变化。
  • 没有,我没有那个名字的身份证
  • 出于安全考虑,我删除了链接,非常感谢!!!!!!!!!!!!它现在可以正常工作了!

标签: javascript jquery html asp.net css


【解决方案1】:

查看您的代码后,您只需将 html 更新为以下内容:

<a id="adddrivertrigger" href="javascript:void(0);" class="auto-style2">Add Drivers</a>

链接中的“#”将您带到页面顶部。

如果您打算将带有 href 的锚标记用于单击事件,则需要阻止 href 触发(假设您不希望它触发)。您通常可以通过添加来做到这一点

return false;

对于您的点击事件,但对于空的 href 属性,更好的做法是创建一个 null javascript 调用,而不是“#”。

对于咯咯笑,这里有一些你不应该/不/对 href 属性做的事情:

<a href="javascript:;"></a>
<a href="javascript:return false;"></a>
<a href="javascript://"></a>
<a href=""></a>
<a href="#"></a>

以上所有内容要么是无效的javascript,要么是不同浏览器的不一致问题。

您可以解决它的另一种方法(通过 jQuery)如下:

         $('a#adddrivertrigger').click(function () {
             $('#adddriverpanel').toggle(400);
             return false;
         });

【讨论】:

  • 它正在工作!对不起,我要出去一会儿!!!!!!!谢谢!我已经接受你的回答了!!再次感谢!!!!!!
猜你喜欢
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
相关资源
最近更新 更多