你需要为每个你想要禁用/启用的标题元素(即"<h3>")添加/删除类名"ui-state-disabled"。然后使用:
$( "#accordion" ).on( "accordionbeforeactivate", function (){
return ! arguments[1].newHeader.hasClass( "ui-state-disabled" );
})
要动态添加/删除类,请使用:
To add/remove a class dyanamically, use:
$( "selector" ).addClass( "ui-state-disabled" );
$( "selector" ).removeClass( "ui-state-disabled" );
你可以给每个标题元素添加有意义的“id”属性,以简化“选择器”部分。例如,“step-1”、“step-2”、“step-n”,对应用户沿着工作流程要遍历的每个步骤。
如果您确定要禁用选项卡的位置,可以尝试以下操作:
// Disable the first tab
$( "#accordion > h3:first-child" ).addClass( "ui-state-disabled" );
// Make sure the fourth tab is enabled
$( $( "#accordion > h3" )[3] ).removeClass( "ui-state-disabled" );
请注意,使用“ui-state-disabled”实际上是有意义的,因为它会使标题呈灰色(或者根据您的主题让禁用的内容看起来像什么)。
另一个需要注意的是,如果您动态禁用的选项卡当前处于活动状态,它不会执行任何特殊操作(例如不会折叠或激活另一个选项卡)。您可以添加额外的逻辑以激活默认选项卡或执行其他操作。
beforeactivate
添加处理程序并返回 false。 - pushkin