2010-04-06 28 views
1

我想在页面加载过程中关闭手风琴动画,然后在加载页面后将其重新打开。仅在页面加载期间关闭Jquery UI手风琴动画

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

我该如何达到这个效果?

回答

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" }); 

    }); 
0

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

在JS时加载页面做

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

在提交使PHP,假设你使用它,这样做:

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

所以当页面重新加载获取将被打开在你想要的标签中。