1

次のように定義されたjQueryアコーディオンがあります。

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

クライアントがボタンをクリックすると、次のDoSomething()ように function を呼び出します。

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

4 に答える 4

2

おそらくactivate、指定されたコンテンツ部分をアクティブにするメソッドを使用するつもりでした:

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

ただし、アコーディオンが無効になっている間は機能しません。したがって、次のように記述する必要があります

$("#acrd").accordion("enable").accordion("activate", 1).accordion("disable");
于 2012-05-16T07:36:00.860 に答える
0

ドキュメントが Get or set the active option, after init. このjqueryuiのようにアクティブであると言っているように、このようなもの

$( "#acrd" ).accordion( "option", "active", 2 );
于 2012-05-16T07:39:24.760 に答える
0

永久に無効にしたい場合は、これが役立つ場合があります

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

h3 を、クリック可能なヘッダーとして使用している要素に置き換えます。activate メソッドまたは active オプションを設定することで、引き続きタブを変更できます。

ソース: jQuery アコーディオン: ペインが開かないようにする/changestart イベントをキャンセルする

于 2012-12-13T15:40:19.720 に答える
0

指定されたアクティブなオプションでアコーディオンを初期化します。

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

次に、コードを試してください...

于 2012-05-16T07:34:18.907 に答える