代码之家  ›  专栏  ›  技术社区  ›  D.J

使用jquery手风琴时如何停止向下滚动页面

  •  2
  • D.J  · 技术社区  · 16 年前

    我正在我的应用程序中使用jquery用户界面协议, 我遇到的一个问题是: 在第二个选项卡中,有一个非常长的窗体。 每次用户进入第二个选项卡时,页面都会自动向下滚动到表单的底部。即使在我硬编码并将焦点设置到表单的第一个文本框之后。

    有什么想法吗?

    提前谢谢大家

    3 回复  |  直到 9 年前
        1
  •  1
  •   D.J    15 年前

    好吧,我试过在索引改变的时候起诉Focus,但是,至少,它对我不起作用。 下面是我的最后一个解决方案,即关闭Accordion UI中的动画:

    $("#accordion").accordion(
                         {
                             autoHeight: false,
                             animated: false,
                             active: parseInt(index),
                             event: ""
                         }
    );
    

    谢谢你的回答。

        2
  •  1
  •   ivan_pozdeev RenanSS    9 年前

    页面滚动效果是激活(自动或手动)手风琴选项的产物。

    中的以下代码 _toggle 功能 ui.accordion 小部件(UI版本 1.8.24 )直接调用 focus 方法:

    toShow.prev()
        .attr({
            "aria-expanded": "true",
            "aria-selected": "true",
            tabIndex: 0
        })
        .focus();
    

    此功能已在jquery用户界面版本中删除 1.9.0 大约在2012年10月。

    要消除页面向下滚动效果,请删除 .focus() 方法调用或升级到较新版本的jQuery UI(推荐)。

        3
  •  0
  •   going    15 年前

    我不确定如果没有一些代码,这是否有效,但有一个 change event 根据文件:

    每次更改手风琴时都会触发此事件。如果手风琴已设置动画,则该事件将在动画完成时触发;否则,将立即触发。

    因此,在展开发生后,是否可以使用此事件并将焦点设置为有效的目标。

    我已经使用according demo/demos/according/default.html对此进行了测试,并在扩展后调用它:

    <script type="text/javascript">
    $(function() {
        $("#accordion").accordion({
            change: function(event, ui) {
                alert('blah');
                // Add your focus code in here
            }
        });
    });
    </script>
    

    我还想说,在所有情况下,我都使用了手风琴,扩展后页面不会跳下来。