2

5つのタブ(jquery ui)を持つPHPファイルがあります。タブ4と5にはフォームが含まれています。フォームとタブは正常に機能します-これを期待してください:フォームを送信し(XHRではなくPOSTメソッド)、マウスの右ボタンをクリックして(FirefoxとIEは同じように動作します)、戻って選択し、入力したページのタブ5をマウスクリックして選択しますフォームデータは引き続き利用できます。

ユーザーにとってより便利なリンクを作成しようとしています。

<a href="#" onClick='history.back();$("#tabs").tabs("select","4");'>modify</a>

変更リンクをクリックすると、タブ1に戻り、タブ5のフォームフィールドは空になります。

jQuery UIタブと戻るボタンに関するいくつかの投稿を読みましたが、すべてが私の問題に対処していないようです。

私のせいはどこにあり、この手順を手動で行うこととJSとのリンクの違いは何ですか?

4

2 に答える 2

2

onClick実行中のページを離れると、Javascriptの実行が停止します。ハンドラーの後半は実行されません。

于 2012-04-05T15:13:04.920 に答える
1

ここのコメントに続いて、最後に選択したタブが何であったかを記憶する関数があります。設定された「戻る」ボタンを使用することに依存します。

私が見る限り、あなたが見つける問題は、ブラウザの戻るボタンをクリックするユーザーを傍受できないことです。私は、サイトに明確で明確な戻るボタンを作成することが仕事をしていることを発見しました、そして私が私たちのサイトでこれまでに持っていたフィードバックはそれを裏付けているようです。

関数は次のとおりです。

$(function() {
    var $previousTab = 0;
    var $backButtonUsed = false;    

    // Initialise tabs
    $("#tabs").tabs();

    $("#tabs").bind("tabsselect", function(event, ui) {
        if ($backButtonUsed)
        {
            $backButtonUsed = false;
        } else {
            $previousTab = $("#tabs").tabs('option', 'selected');
        }
        return true;
    });

    $("#back").live('click', function() {
        $backButtonUsed = true;
        $("#tabs").tabs({ selected: $previousTab });
        return true;
    });
});​

これもJSFiddleに含めたので、HTMLタブとjQueryUIタブで実際の動作を確認できます。

どう考えているか教えてください。

于 2012-04-05T16:09:46.640 に答える