Jquery - 手风琴 - 活跃状态

时间:2012-03-04 10:34:53

标签: jquery-ui-accordion

我在这个论坛上搜索了答案,但一直未能找到答案。 这是我的问题:

我想禁用打开手风琴的第一个和第二个窗格的可能性,并允许它仅在需要时打开。这样就可以禁用某些窗格,并启用一些窗格。

我用这段代码搜索过:

$( "#accordion" ).bind( "accordionchangestart", function(event, ui) {                   
     var active = $(this).accordion( "option", "active" );
         if(active == 0)||(active == 1)){
    preventDefault();
     }                              
});

它仅适用于第二个窗格(== 1),因为当状态关闭时,它被视为false,而jquery为false == 0。

我已经尝试搜索所选窗格是否是第一个具有ui-state-active类的窗格,但是这已经太晚了,当类出现时,窗格打开,这就是我想要阻止的。

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

如果你使用jQuery UI的手风琴而不是你应该做的是使用 changestart 事件来检查哪一个被点击并做你想做的任何事情。

用它来检查当前状态:

$( "#accordion" ).accordion({changestart: function(event, ui) {
        alert(ui.newHeader[0].textContent);
}});

Yo也可以像这样更改当前选项:

$("#accordion").accordion("activate", 3);

您可以在此处找到活动文档: http://jqueryui.com/demos/accordion/#events

这是 activate 方法文档: http://jqueryui.com/demos/accordion/#method-activate

答案 1 :(得分:0)

如果我想在扩展时采取行动:

 <tr data-ng-repeat="row in data.rows">

    <td><span class="h1 text-white">{{ row.target | number}}</span></td>
    <td><span class="text-{{ row.yesterday > row.target ? 'success' : 'warning' }}" style="font-size: 2.6em">{{ row.yesterday | number}}</span></td>

</tr>