javascript - 从其他控件关闭折叠面板( Accordion )

标签 javascript jquery

我正在尝试通过标签的点击事件关闭并禁用 Accordion 。

单击标签时。 Accordion 应被禁用并关闭。我可以使用 addClass 方法禁用它

$('#c5').addClass('ui-state-disabled');
<div class="accordionHeader">
    <h3 id="c5">Advance Settings (C5)</h3>
    <div class="accordionContent">my content</div>
</div>

为了关闭 Accordion ,我尝试使用

$('#c5').prop('active',false);
$('#c5').attr('active',false);

两者都不起作用。

在必须从其他控件调用它之前我不想使用

$(".accordionHeader").accordion({
    header: "h3",
    collapsible: true,
    active: false
});

最佳答案

来自API Documentation :

Setting active to false will collapse all panels. This requires the collapsible option to be true.

因此,使用以下 HTML,

<div class="accordionHeader">
     <h3 id="c5">Advance Settings (C5)</h3>
     <div class="accordionContent">my content</div>
</div>
<label id='c5label'>Disable accordion <input type="checkbox" /></label>

此 JS 将在第一次单击标签“#c5label”时启动 Accordion 并关闭/禁用:

<script>
jQuery(document).ready(function($) {
    $(".accordionHeader").accordion({ collapsible: true });
    $('#c5label').click(function(){
        if( $( ".accordionHeader" ).accordion( "option", "active") === false )
            return;

        $('#c5').addClass('ui-state-disabled');
        $( ".accordionHeader" ).accordion( "option", "active", false );
    });
});
</script>

关于javascript - 从其他控件关闭折叠面板( Accordion ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078428/

相关文章:

jquery - 如何在附加之前修改 html 字符串中的元素

jquery - 使用 Jquery 在一定时间后停止 CSS 动画

javascript - 使用 event.target 更改点击时的 iframe src attr

javascript - 从 Javascript 中的对象方法内访问全局变量

javascript - 在什么条件下提交输入?

javascript - JS : Using 'return' in arrow function syntax

javascript - 如何使用ajax提交表单请求而不刷新页面并在laravel中返回消息?

javascript - 查找多个 JavaScript 数组之间的匹配项

javascript - 如何在创建的博客文章上向用户发送 Facebook 通知?

javascript - 使用 HTML 和 JavaScript 在页面上实现 "current-position"指示器