3

私はJQuery UI Tabsを使用しています。ここで提案されているように、各タブのコンテンツを Ajax でロードします: http://jqueryui.com/tabs/#ajax

問題: ユーザーがタブ A、次にタブ B、そしてもう一度タブ A をクリックすると、タブ A のコンテンツが 2 回読み込まれます。

JQuery UI タブのコンテンツをキャッシュすることは可能ですか?

4

3 に答える 3

6

beforeLoadイベントを使用してみてください:

$(".selector").tabs({
    beforeLoad: function(event, ui) {
        // if the target panel is empty, return true
        return ui.panel.html() == "";
    }
});

beforeLoad(イベント、ui)

beforeActivate イベントの後、リモート タブがロードされようとしているときにトリガーされます。タブ パネルがコンテンツをロードしないようにキャンセルできます。ただし、パネルは引き続きアクティブになります。このイベントは Ajax リクエストが行われる直前にトリガーされるため、ui.jqXHR と ui.ajaxSettings を変更できます。

注: ui.ajaxSettings が提供されており、変更できますが、これらの設定の一部は jQuery によって既に処理されています。たとえば、事前フィルタが適用され、データが処理され、タイプが決定されました。beforeLoad イベントは同時に発生するため、jQuery.ajax() からの beforeSend コールバックと同じ制限があります。

于 2013-10-31T16:46:43.270 に答える