仅在页面加载期间关闭Jquery UI Accordion动画

时间:2010-04-06 23:01:57

标签: jquery-ui

我想在页面加载期间关闭手风琴动画,然后在页面加载后重新打开它。

基本上我在手风琴部分里面有多个表格,当提交页面时会重新加载并重新加载相关部分。但是在重新加载期间,动画被触发,看起来有点难看。但是当我没有加载页面时我喜欢它。

我如何达到这个效果?

2 个答案:

答案 0 :(得分:3)

回答我自己的问题。以下工作。

我发现在创建手风琴对象时,首先不定义动画。 然后,选择要在加载时显示的部分。在我的情况下我的Kohana控制器 从上一个表单提交设置的会话变量中检索它。然后它被传递到包含此代码的模板中。

完成此操作后,将动画设置设置为幻灯片,并且全部都从那里开始。

 $(function(){
      /* Create the accordion object first */
      $("#accordion").accordion({ animated: false, header: "h3", autoHeight: false, clearstyle: true, collapsible: true })

      /* get the section to load. This is set by the previous form submission and saved to a session variable. */ 
      var id = <?php echo $sectionId; ?>;

      /* activate on sectionId=0 causes it to close (which is by design) this gets around it */
      if (id != 0) {
        $("#accordion").accordion("activate", id);
      }

      $("#accordion").accordion("option", {animated: "slide" });

    });

答案 1 :(得分:0)

如果页面在提交后重新加载,那么整个JS脚本也将被重新加载,因此,包含任何类型数据的任何变量都将重置为默认值。我能想到的唯一方法就是在收到提交后,在javascript脚本中设置一个由服务器端语言设置的变量。

在加载页面时在JS中执行

var = false; //false = no open tabs
$( ".selector" ).accordion( { ..., active: var } );

在提交时,假设您正在使用PHP,请执行:

$my_tab_number = n;
var = <php echo $my_tab_number; ?>;

因此,当页面重新加载时,它将在您想要的选项卡中打开。