如何管理空的jQuery手风琴面板?如何禁用点击手风琴标题?

时间:2013-04-01 08:43:03

标签: jquery-ui jquery-ui-accordion

我使用的是Accordionn jQuery Controls,您可以在下面找到以下网址:

手风琴:http://jqueryui.com/accordion/

问题:我们如何管理无法点击的空菜单;示例 - 如果我在“第2部分”菜单上没有任何项目,则不应该是可点击的。当我这样做时,要么将下一个父菜单项设为前一个并且失真,要么我只留下一个emtpy <div>,它会打开一个空白菜单而不能点击。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

您可以尝试使用http://api.jqueryui.com/accordion/#event-beforeActivate

$( ".selector" ).on( "accordionbeforeactivate", function( event, ui ) {} );

在功能中,您可以测试ui.newPanel,如果为空,则取消激活该面板。

我创建了jsfiddle示例:http://jsfiddle.net/npthU/1/

    $( "#accordion" ).on( "accordionbeforeactivate", function( event, ui ) {

       if($.trim($( ui.newPanel ).html()).length == 0)
          event.preventDefault();

    });

使用event.preventDefault();禁用打开具有空div的特定面板。

答案 1 :(得分:0)

此处更新此代码:

$('#'+_id).on( "accordionbeforeactivate", function( event, ui ) {
        if((($.trim($(ui.newPanel).html()).length == 0)&&($(ui.oldHeader).length==0))||(($.trim($(ui.newPanel).html()).length == 0)&&($(ui.newHeader).length))){event.preventDefault();});

现在它可以折叠/解除折叠