我在我的应用程序中使用jQuery UI Accordion, 我遇到的一个问题是: 在第二个标签内,有一个很长的形式。 每当用户进入第二个选项卡时,页面会自动向下滚动到表单的底部。即使在我硬编码并将焦点设置为表单的第一个文本框之后。
任何想法?
提前谢谢大家
答案 0 :(得分:1)
好吧,我试图在索引更改时起诉焦点,但是,至少,它对我不起作用。 这是我的最终解决方案,它关闭了手风琴UI中的动画:
$("#accordion").accordion(
{
autoHeight: false,
animated: false,
active: parseInt(index),
event: ""
}
);
感谢您的回答。
答案 1 :(得分:1)
页面滚动效果是激活(自动或手动)手风琴选项的工件。
_toggle
窗口小部件的ui.accordion
函数中的以下代码(ui版本1.8.24
)明确调用focus
方法:
toShow.prev()
.attr({
"aria-expanded": "true",
"aria-selected": "true",
tabIndex: 0
})
.focus();
此功能已于2012年10月左右在jQuery UI版本1.9.0
中删除。
要消除页面向下滚动效果,请删除.focus()
方法调用或升级到较新版本的jQuery UI(推荐)。
答案 2 :(得分:0)
我不确定没有一些代码是否有效,但根据doco有一个change event:
每次手风琴改变时都会触发此事件。如果手风琴是动画的,则动画完成后将触发该事件;否则,立即触发。
因此,可以使用此事件,并在扩展发生后将焦点设置为有效目标。
我已经使用相应的演示/demos/according/default.html对其进行了测试,并在扩展后调用它:
<script type="text/javascript">
$(function() {
$("#accordion").accordion({
change: function(event, ui) {
alert('blah');
// Add your focus code in here
}
});
});
</script>
我还想在所有情况下都提到我使用了手风琴,页面在扩展后没有跳下来。