激活JQuery手风琴的不同部分

时间:2011-05-31 17:00:47

标签: jquery jquery-ui accordion

我真的很感激这个问题的任何帮助。

这是一个更长的PHP代码集的简化版本,但它仍然有问题,所以我排除了其余的原因。

手风琴正在主页面中创建。随后的HTML由包含的php文件生成。

手风琴完美无缺,唯一的问题是有时我会想要加载第二部分(部分W)而不是第一部分(部分R),这是默认行为。我已经尝试过几种我在网上找到的解决方案,但是下面的解决方案都没有。任何帮助将不胜感激。

代码:http://pastebin.com/WQfctKVx

<script type='text/javascript'>
    $(function() {
        $( "#k_accordion" ).accordion({
            autoHeight: false,
            navigation: true
        });
    });
</script>

<div id="k_accordion">
    <h3 id="sectionR"><a href="#sectionR">Section R</a></h3>
    <div>
        Content for Section R
    </div>

    <h3 id="sectionW"><a href="#sectionW">Section W</a></h3>
    <div>
        Content for Section W
    </div>

    <script language=javascript> $( "#k_accordion" ).accordion( "activate", 2);</script>
    <script language=javascript>// Gives 'is not a function' error:     $("#k_accordion").activate(2); </script>
    <script language=javascript>// $( "#k_accordion" ).accordion( "activate", "sectionW");</script>
    <script language=javascript>// $( "#k_accordion" ).accordion( "activate", "#k_accordion > div:has(#sectionW) > h3"); </script>
    <script language=javascript>// $( "#k_accordion" ).accordion( "activate", $("#h3-sectionW")); </script>
</div>

1 个答案:

答案 0 :(得分:5)

active option就是您所需要的:

  

activeType:Boolean或Integer
  默认值:0

     

目前哪个小组处于开放状态。

     

支持多种类型:

     
      
  • 布尔:将active设置为false会折叠所有面板。这要求collapsible option为真。
  •   
  • 整数:处于活动状态(打开)的面板的从零开始的索引。负值选择从最后一个面板向后移动的面板。
  •   

如果你想打开第二个面板(例如),那么在创建手风琴时设置active: 1

$( "#k_accordion" ).accordion({
    autoHeight: false,
    navigation: true,
    active: 1
});

或者您可以使用option方法在创建手风琴后更改打开的面板:

$('#k_accordion').accordion('option', 'active', 1);

或者您可以使用activate方法:

$("#k_accordion").accordion('activate', 1);

使用active选项或activate方法时,请记住两件事:

  1. 他们需要面板索引,而不是id属性。
  2. 索引从零开始(就像JavaScript数组一样),因此第二个面板的索引为1,而不是您尝试使用的索引。