1

これらの質問は、経験豊富な人にとってはかなりローエンドに思えるかもしれませんが、私はこの分野の経験がありません。しかし、私はすぐに習得し、混乱している基本的なことがいくつかあります.

私の状況は、サーバー サイド スクリプトで Maccordion を実装したことです。Maccordion は、複数のパネルを同時に開くことができる jquery に基づくアコーディオン スタイルのメニューです。頭の中に次のスクリプト ブロックを用意して起動します。

<script type="text/javascript">
$(window).load(function(){
$( ".maccordion" ).maccordion( { active: [], heightStyle: false } );
});
</script>

この部分は正常に動作します。参考までに、「active: []」部分を使用すると、ロード時にさまざまなメニュー ペインを開くことができます。たとえば、「アクティブ: [0,2]」は、ペイン 1 と 3 を開きます。

パネルの状態の変更を保存したいのですが、https: //github.com/Dattaya/Maccordion/blob/master/README.md の Maccordion ページで、これを行うための次の情報が得られます。

活性化

マコーディオンが変更されたときにトリガーされます。

$( ".maccordion" ).bind("maccordionactivate": function(event, data) {
    data.toggled // headers of the content panels that have been toggled.
});

パネルの状態を保存および復元できるサーバー側スクリプトの作成に問題はありません。問題は、上記の「data.toggled」変数を取得し、バックグラウンドでそのスクリプトに渡して状態を保存することです。パネル。

これを行うには、javascriptとajaxを使用するという考えがあると思います。これを行う方法は、いくつかのレベルで私を混乱させます。

まず、上記のスニペットをどのように使用すればよいかさえわかりません。これを行う方法を説明しているスニペットがたくさんありますが、残念ながらそれらはすべて、読者が JavaScript を適切に挿入する方法や、Web ページで発生するイベントから何かを呼び出す方法などを知っていることを前提としています。 .. W3C やその他の場所のチュートリアルを読んだり、あらゆる種類の Web ページのソース コードを調べたりしましたが、ロジックに納得できないものがあります。

基本的に私ができる必要があるのは、そのdata.toggled変数を取得し、ユーザーがパネルを開いたり閉じたりするたびに中断することなく、選択したサーバー側スクリプトに渡すことです。

これを書いているとき、肌色の右メニューに表示されるすべてのヒントを読んでいて、次のような jquery cookie スニペットで状態を保存している人がいることに気付きました。

jQuery(document).ready(function(){
$( "#accordion" ).accordion({
    change: function(event, ui) {
        //set cookie for current index on change event
        $.cookie('saved_index', null);
        $.cookie('saved_index', $( "#accordion" )
                .accordion( "option", "active" ));
    },
    active:parseInt($.cookie('saved_index'))
});
});

データベースの代わりにクッキーを使用しても問題はありませんが、このようなものを使用して複数のパネルの状態を保存する方法は私にはわかりません。

これを正しい方向に進めるのに役立つものは何でも大歓迎です、ありがとう。

4

1 に答える 1