タブ付きのコンテンツがあります。以下のHTMLに基づいています。
<ul class="tabContainer">
</ul>
<div id="tabContent">
<div id="contentHolder">
<!-- The AJAX fetched content goes here -->
</div>
<div id="pagination"></div>
</div>
f_tabは、以下のアクションを含む、上記のHTMLのコンテンツを管理する関数です。
- タブを生成します。
- PHPページをフェッチしてタブホルダーに結果を返すAJAXを実行します。
jPaginatorプラグイン(https://github.com/remylab/jpaginator)を使用してコンテンツホルダー内の各コンテンツをページ付けします。
function f_tab(str){ $(document).ready(function(){ var Tabs = { '1' : 'page1.php?p='+var, '2' : 'page2.php?p='+var, '3' : 'page3.php?p='+var, } var topLineColor = { blue:'lightblue', blue:'lightblue', blue:'lightblue',} $.each(Tabs,function(i,j){ var tmp = $('<li><a href="" class="tab">'+i+' <span class="left" /><span class="right" /></a></li>'); tmp.find('a').data('page',j); $('ul.tabContainer').append(tmp); }) var the_tabs = $('.tab'); the_tabs.click(function(e){ var element = $(this); if(!element.data('cache')) { $.get(element.data('page'),function(msg){ $('#contentHolder').html(msg); element.data('cache',msg); }); } else { $('#contentHolder').html(element.data('cache')); } e.preventDefault(); }) the_tabs.eq(2).click(); }); return false; }
ページネーション機能(情報提供のみ)は次のとおりです。
(function($){
$.fn.extend({
MyPagination: function(options) {
var defaults = {
height: 600,
fadeSpeed: 1000
};
var options = $.extend(defaults, options);
//Creating a reference to the object
var objContent = $(this);
// other inner variables
var fullPages = new Array();
var subPages = new Array();
var height = 0;
var lastPage = 1;
var paginatePages=null;
var numero=0;
// initialization function
init = function() {
objContent.children().each(function(i){
if (height + this.clientHeight > options.height) {
fullPages.push(subPages);
subPages = new Array();
height = 0;
}
height += this.clientHeight;
subPages.push(this);
});
if (height > 0) {
fullPages.push(subPages);
}
// wrapping each full page
$(fullPages).wrap("<div class='page'></div>");
// hiding all wrapped pages
objContent.children().hide();
// making collection of pages for pagination
paginatePages = objContent.children();
numero=$(paginatePages).length;
// show first page
showPage(lastPage);
};
// show page function
showPage = function(page) {
i = page - 1;
if (paginatePages[i]) {
// hiding old page, display new one
$(paginatePages[lastPage]).hide();
lastPage = i;
$(paginatePages[lastPage]).fadeIn(options.fadeSpeed);
}
};
// show pagination function (draw switching numbers)
// perform initialization
init();
//$(document).ready(function(){
$("#pagination").jPaginator({
nbPages:numero,
marginPx:5,
nbVisible:8,
overBtnLeft:'#over_backward',
overBtnRight:'#over_forward',
maxBtnLeft:'#max_backward',
maxBtnRight:'#max_forward',
onPageClicked: function(a,num) {
showPage(num);
}
});
//});
}
});
})(jQuery);
質問: タブから別のタブに移動するときに、ブラウザがタブに最後に表示されたページを記憶するようにするにはどうすればよいですか。たとえば、tab1に表示される最後のページがpage5の場合、別のタブをクリックしてtab1に戻った後、tab1のpage5を表示するにはどうすればよいですか。
お時間をいただきありがとうございます。ヘルプをいただければ幸いです。