如何保持jQuery手风琴禁用但仍然改变其活动状态?

时间:2012-05-16 07:29:37

标签: javascript jquery accordion

我有一个jQuery手风琴定义如下:

$("#acrd").accordion({
    autoHeight: false,
    header: '.navhead',
    alwaysOpen: true,
    navigation: true,
    collapsible: true,
    disabled: true
});

当客户点击按钮时,我会调用函数DoSomething(),如下所示:

function DoSomething(id) {
    $.ajax({
        url: "getapage.php?id="+id,
        cache: false
        }).done(function( html ) {
            if(html == 'OK') {
                $("#acrd").accordion({ active: 1 }); // doesn't work
            } else {
                alert("Give an error!");
            }
    });
}

但是当我点击按钮时没有任何反应,我检查了Firebug并且没有语法错误。

我怎样才能做到这一点? (在此过程中不启用手风琴,客户端必须无法改变手风琴的活动状态)

4 个答案:

答案 0 :(得分:2)

您可能想要使用activate方法来激活指定的内容部分:

$("#acrd").accordion("activate", 1);

然而,当手风琴被禁用时,这将不起作用。所以你需要把它写成

$("#acrd").accordion("enable").accordion("activate", 1).accordion("disable");

答案 1 :(得分:0)

使用指定的有效选项初始化手风琴。

$( "#acrd" ).accordion({ active: 2 , others.... });

然后尝试你的代码......

答案 2 :(得分:0)

有些类似的事情,因为文档Get or set the active option, after init.就像这样jquery ui active

$( "#acrd" ).accordion( "option", "active", 2 );

答案 3 :(得分:0)

如果您希望永久禁用它,那么这可能对您有用

$("#accordion h3").unbind("click");

将h3替换为您使用的任何元素作为可点击标题。您仍然可以通过激活方法或设置活动选项来更改选项卡。

Soruce:jQuery accordion: prevent pane from opening/cancel changestart event