1

次の例を見てください。

http://www.jqplot.com/deploy/dist/examples/hiddenPlotsInTabs.html

最初の例では、「tabshow」イベントをキャッチし、選択されたタブを見つけることによって、非表示のグラフがプロットされます。

$('#tabs').bind('tabsshow', function (event, ui) {
    if (ui.index === 1 && plot1._drawCount === 0) {
        plot1.replot();
    } else if (ui.index === 2 && plot2._drawCount === 0) {
        plot2.replot();
    }
});

これは正常に機能しますが、タブを追加してプロットを他のタブに移動した場合は、ハードコードされた「ui.index」値を手動で更新する必要があります。これは、プロジェクトでは避けたいものです。

プロットがどのタブの下にあるかをプログラムで見つける良い方法を知っている人はいますか?タブの数やプロットの配置場所が問題にならないようにコーディングしたいと思います。

4

1 に答える 1

1

次の方法でアプローチする必要があります。

  1. どこかから見つけたいチャートIDを取得します。
  2. jQueryを使用してグラフを選択します。
  3. メソッドを使用してその親を検索しparent()ます---これはそれを含むタブです。
  4. attr('id')IDを取得するための親の使用。

これは、ここで入手できるjsfiddleサンプルで表示する方法です。

編集

私が理解していることから、選択したタブのインデックス、つまり事実上ui.indexを取得したいと考えています。ですぐに使えるメソッドが見つからなかったのでjQuery UI、これが私がそれを達成した方法です(このコードは前のjsfiddleサンプルにも追加されています):

    var tabIndex = -1;
    $("#tabs ul li").each(function(index){
        if('#'+tabId === $(this).find("a").attr('href')){
            tabIndex = index;
            return false;
        }
    });
于 2012-05-02T11:29:10.533 に答える