/*
* jquery.tab
* 作成者: Winter Grass
* 日付: 2010/12/07
*/
jQuery.fn.tab = function(options) {
var settings =
{
activeTabClass: "タブ選択"、
defaultTabClass: "タブデフォルト"、
tabContainerClass: "tabContainer"、
tabPanelCls: "tabPanel"、
mouseoverTabClass: null、
hiddenTabClass: 'タブ非表示'、
tabPanel: null、
selectHandler: null、
iframeIdPrex: 'iframe_'
};
if (オプション) {
jQuery.extend(settings, options);
}
//#region public events
$.fn.setActiveTab = function(tabIndex) {
if (tabIndex) {
return this.each(function() {
this.setActiveTab(tabIndex);
})
}
};
$.fn.getFrameByTabId = function(tabId) {
if (tabId) {
var iframeId = settings.iframeIdPrex tabId;
return Frames[iframeId];
return
};
return this.each(function() {
var ts = this;
var $tabContainer = $(ts);
ts.activeTab = null;
ts.tabPanelId = null;
ts.selectedTab = null;
ts.selectedIndex = 0;
//#region 'private' メソッド
this.setActiveTab = function( tabIndex) {
if (typeof (tabIndex) != "number") {
return;
}
var selectedTab = $('li:visible', $tabContainer).eq (tabIndex );
if (selectedTab.length == 0) {
return;
}
//アクティブなタブをクリックします
if (ts.iframeId == settings.iframeIdPrex selectedTab. attr( 'id')) {
return;
}
else {
if (ts.iframeId != null) {
//$(frames[activeTabId]).hide( );
$("iframe").hide();
}
}
$('.' settings.activeTabClass, $tabContainer).removeClass(settings.activeTabClass); ts.activeTab = selectedTab;
ts.activeTab.addClass(settings.activeTabClass);
var target = ts.activeTab.attr('target'); ') {
return;
}
ts.iframeId = settings.iframeIdPrex selectedTab.attr('id');
if ($('#' ts.iframeId).length == 0 ) {
var iframe = $('
');
iframe.attr('id', ts.iframeId)
.attr('src', target)
.css({ 幅: '100%', 高さ: '100%' });
iframe.appendTo(settings.tabPanel)
}
else {
$(' #' ts.iframeId).show();
}
};
$tabContainer.addClass(settings.tabContainerClass); tabPanel) .addClass(settings.tabPanelCls);
var stopFloatDiv = $('
');
stopFloatDiv.css({ クリア: '両方'、高さ: '0px' })
.insertAfter($tabContainer);
$('li', $tabContainer).each(function(i) {
var $tab = $(this);
var $link = $ ('a', $tab);
var href = $link.attr('href');
$link.attr('href', "#"); attr( 'target', href)
.addClass(settings.defaultTabClass)
.click(function(e) {
ts.selectedTab = $tab;
ts.selectedIndex = i;
if (typeof (settings.selectHandler) == "関数") {
settings.selectHandler();
}
else {
ts.setActiveTab(i) } )
});
//#endregion 'private' メソッド
ts.setActiveTab(0); //最初のタブをデフォルトとして設定します.
});
};
コードをコピーします。は次のとおりです:
$ (ウィンドウ) .load(function() {
$('#tabs').tab({
tabPanel: '#tabPanel'
});
})
2. このプラグインは、特定のタブ ページが検証に失敗し、切り替えが許可されないなどの特別なニーズをサポートするために、ユーザー定義のタブ切り替えイベント (selectHandler) をサポートします。使用法:
//...
}