首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用jQuery Accordion时停止向下滚动页面

如何在使用jQuery Accordion时停止向下滚动页面
EN

Stack Overflow用户
提问于 2010-07-16 15:53:10
回答 3查看 3.2K关注 0票数 2

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

有什么想法吗?

提前感谢所有人

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-07 08:52:24

我试着在索引改变的时候起诉焦点,但是,至少对我不起作用。这是我的最终解决方案,关闭折叠UI中的动画:

代码语言:javascript
复制
$("#accordion").accordion(
                     {
                         autoHeight: false,
                         animated: false,
                         active: parseInt(index),
                         event: ""
                     }
);

谢谢你的回答。

票数 1
EN

Stack Overflow用户

发布于 2017-01-24 07:11:33

页面滚动效果是激活(自动或手动)折叠选项的伪像。

ui.accordion小部件(ui版本1.8.24)的_toggle函数中的以下代码显式调用focus方法:

代码语言:javascript
复制
toShow.prev()
    .attr({
        "aria-expanded": "true",
        "aria-selected": "true",
        tabIndex: 0
    })
    .focus();

此功能在2012年10月左右的jQuery UI版本1.9.0中被删除。

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

票数 1
EN

Stack Overflow用户

发布于 2010-09-02 11:01:28

我不确定如果没有一些代码,这是否可以工作,但有一个change event,根据文档:

每次折叠面板更改时都会触发此事件。如果将accordion动画化,则在动画完成时触发事件;否则立即触发。

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

我已经用相应的demo /demos/ called /default.html进行了测试,它是在展开后调用的:

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

我还想提一下,在我使用手风琴的所有情况下,页面在展开后都不会跳下。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3262924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档