Jquery ui 如何管理空的jQuery Accordion面板?如何禁用“单击手风琴标题”?

Jquery ui 如何管理空的jQuery Accordion面板?如何禁用“单击手风琴标题”?,jquery-ui,jquery-ui-accordion,Jquery Ui,Jquery Ui Accordion,我使用的是Accordionn jQuery控件,您可以在下面找到URL: 手风琴: 问题:如何管理不可点击的空菜单;示例-如果我在“Section 2”菜单上没有任何项目,它就不应该是可点击的。当我这样做的时候,它要么使下一个父菜单项成为上一个的子菜单项并被扭曲,要么如果我只留下一个emtpy,它会打开一个空白菜单,而不是不可点击。有人能帮忙吗?你可以试试 在函数中,您可以测试ui.newPanel,如果为空,则取消激活该面板 我创建了JSFIDLE示例: 使用event.preventDef

我使用的是Accordionn jQuery控件,您可以在下面找到URL:

手风琴:

问题:如何管理不可点击的空菜单;示例-如果我在“Section 2”菜单上没有任何项目,它就不应该是可点击的。当我这样做的时候,它要么使下一个父菜单项成为上一个的子菜单项并被扭曲,要么如果我只留下一个emtpy
,它会打开一个空白菜单,而不是不可点击。有人能帮忙吗?

你可以试试

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

我创建了JSFIDLE示例:


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

此代码的更新:

$('#'+_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();});

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

如果菜单中没有任何内容,为什么还要费心将其嵌入一个空div中?感谢@freshbm对该问题的快速关注,我真的很感激。让我试着尽快回复你。对不起@freshbm,也许你的答案也对,但不幸的是我无法修复。我确信我的理解力不足,但不知怎么的,我已经这样做了,请检查一下,谢谢你…哦,我再试了一次,它也能工作。。。哇,我现在有两种不同的解决方案:-)谢谢@freshbm,我检查了你的答案。
    $( "#accordion" ).on( "accordionbeforeactivate", function( event, ui ) {

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

    });
$('#'+_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();});