我想在页面加载期间关闭手风琴动画,然后在页面加载后重新打开它。
基本上我在手风琴部分里面有多个表格,当提交页面时会重新加载并重新加载相关部分。但是在重新加载期间,动画被触发,看起来有点难看。但是当我没有加载页面时我喜欢它。
我如何达到这个效果?
答案 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; ?>;
因此,当页面重新加载时,它将在您想要的选项卡中打开。