2010-07-16 72 views
2

我在我的应用程序中使用jQuery UI手风琴, 我有一个问题是: 第二个标签页里面有一个很长的表单。 每次用户进入第二个选项卡时,页面会自动向下滚动到表单的底部。即使在我硬编码并将焦点设置到窗体的第一个文本框之后。如何停止页面滚动,同时使用jQuery手风琴

有什么想法?

谢谢大家提前

回答

1

嗯,我试图在索引更改时提起诉讼,但至少它不适用于我。 这里是我最后的解决办法是关掉动画手风琴UI:

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

谢谢您的回答。

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> 

我也想在所有的情况下,更何况我已经使用了手风琴展开后页面不会跳下。

1

页面滚动效果是激活(自动或手动)手风琴选项的人为因素。

中的ui.accordion部件(UI版本1.8.24)的_toggle功能下面的代码,使该focus方法的显式调用:

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

在jQuery UI的1.9.0版本中删除大约在2012年10月

此功能

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