根据jquery选择器激活accordion部分

时间:2013-01-04 20:05:49

标签: jquery-ui jquery-ui-accordion

我从阅读文档中了解到,accordion中的active选项采用布尔值或整数。有没有办法根据选择器做到这一点?

我想要完成的是,如果某个元素具有活动类,则通过accordion激活父节点。我的目标是h3元素。在我包含的代码中,第一部分应该是活动的,因为li上的类是活动的,值为1。

Jquery的

var t = $('.ui-accordion-content a.active');
if (t.length){
   //select the h3 element
   var parent = $(t).parents('h3.ui-accordion-header');
   //close all sections 
   $( ".accordion" ).accordion( "option", "active", false );
   //open section 
   $( ".accordion" ).accordion( "option", "active", parent );
}

HTML

<div>
<ul>
    <li>0</li>
</ul>
<ul class="accordion">
        <li>
            <h3><a href="#">First</a></h3>
            <div>
                <ul>
                    <li class="active">1</li>
                    <li>2</li>
                </ul>
            </div>
        </li>
        <li>
            <h3><a href="#">Second</a></h3>
            <div>
                <ul>
                    <li>3</li>
                    <li>4</li>
                </ul>
            </div>
        </li>
</ul>

1 个答案:

答案 0 :(得分:0)

我在h3s

中添加了一个属性
<h3 accordian-index="0"><a href="#">First</a></h3>

然后我选择attr并使用整数来设置活动

var headerIndex = parseInt($(t).parents('.ui-accordion-content').siblings('h3').attr('accordian-index'));
$( ".accordion" ).accordion( "option", "active", headerIndex);

它不是我应得的解决方案,而是我现在需要的解决方案。