jQuery Tab插件 用于在Tab中顯示iframe,附源碼和詳細(xì)說(shuō)明
作者: think8848(公司主頁(yè): http://www.cleversoft.com, QQ: 166156888, Blog: http://think8848.cnblogs.com) 轉(zhuǎn)載請(qǐng)保留此信息
CleverTabs是一款jQuery插件,所需jQuery版本:1.6.1,jQuery UI樣式版本:1.8.13;其功能為創(chuàng)建jQuery UI風(fēng)格的Tab用于顯示iframe。
本示例中符加了jQuery.contextMenu插件,我修改了其樣式,使用了jQuery UI的皮膚
效果如下圖:

初級(jí)應(yīng)用示例:
HTML代碼:
<div id="tabs"><ul></ul></div>
Javascript代碼:
<script type="text/javascript">
$(function () {
tabs = $('#tabs').cleverTabs();
tabs.add({
url: 'http://www.dhdzp.com',
label: 'think8848'
});
});
</script>
CleverTabs詳細(xì)說(shuō)明:
CleverTabs為所有Tab的容器
var tabs;
<script type="text/javascript">
$(function () {
tabs = $('#tabs').cleverTabs({
//是否安裝右鍵菜單(默認(rèn): true)
setupContextMenu: true,
//右鍵菜單定義, 右鍵菜單功能由jquery.contextMenu插件提供
//詳見: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/
//本插件中對(duì)原contextMenu插件中的樣式做了修改,使用了jQuery UI皮膚
contextMenu: {
element: $('#contextMenuElementId'),
handler: function (action, el, pos) { /*do something...*/ }
},
//開啟Tab后是否鎖定(不允許關(guān)閉,默認(rèn): false)
lock: false,
//開啟Tab后是否禁用(不允許激活和操作iframe內(nèi)容,默認(rèn): false)
disable: false,
//當(dāng)tabs中只有一個(gè)Tab時(shí),是否鎖定該Tab(默認(rèn): true)
lockOnlyOne: true,
//顯示iframe的容器(默認(rèn)創(chuàng)建在tabs元素中)
panelContainer: $('#panelContainerElementId')/*,
其中
tabHeaderTemplate: '', //(Tab用于控制的頭模板)
tabPanelTemplate: '', //(Tab用于顯示的Panel模板)
uidGenerator: function() {} //(Tab唯一id生成器)
功能現(xiàn)在不啟用,等有時(shí)間完善后再啟用*/
});
tabs.add({
url: 'http://www.dhdzp.com',
label: 'think8848'
});
});
</script>
CleverTabs.add方法:添加一個(gè)新的Tab并使之成為激活狀態(tài),如果將要添加的url已經(jīng)存在,則會(huì)激活該Tab
<script type="text/javascript">
var tabs = ('#tabs').cleverTabs();
tabs.add({
//必須是在tabs內(nèi)唯一的id
id: 'uniqueId',
//將要在iframe的src屬性設(shè)置的值
url: 'iframe.src',
//顯示在Tab頭上的文字
label: 'tab header',
//關(guān)閉本Tab時(shí)需要刷新的Tab的url(默認(rèn): null)
closeREfresh: 'tab url',
//關(guān)閉本Tab時(shí)需要激活的Tab的url(默認(rèn): null)
closeActivate: 'tab url',
//關(guān)閉本Tab時(shí)需要執(zhí)行的回調(diào)函數(shù)
callback: function () { /*do something*/ }
});
</script>
CleverTabs.getCurrentTab方法:
獲取當(dāng)前處于激活狀態(tài)的Tab
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getCurrentTab();
</script>
CleverTabs.getTabByUrl方法:
獲取指定url的Tab實(shí)例
<script type="text/javascript">
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getTabByUrl('http://www.dhdzp.com');
</script>
CleverTabs.clear方法:
關(guān)閉tabs內(nèi)所有未鎖定的Tab
var tabs = ('#tabs').cleverTabs();
var tab = tabs.clear();
</script>
CleverTab.deactivate方法:
使Tab頁(yè)面處于未激活狀態(tài),但不建議在代碼中使用
CleverTab.prevTab方法:
獲取該Tab之前的Tab
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getTabByUrl('http://www.dhdzp.com');
var prevTab = tab.prevTab();
</script>
CleverTab.nextTab方法:
獲取該Tab之后的Tab
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getTabByUrl('http://www.dhdzp.com');
var prevTab = tab.nextTab();
</script>
CleverTab.kill方法:
從tabs中移移該Tab
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getTabByUrl('http://www.dhdzp.com');
tab.kill();
</script>
CleverTab.refresh方法:
刷新該Tab的iframe中的內(nèi)容
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getTabByUrl('http://www.dhdzp.com');
tab.refresh();
</script>
CleverTab.setDisable方法:
設(shè)置該Tab的disabled屬性,設(shè)置disabled為true后,自動(dòng)設(shè)置該Tab的locked屬性為true
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getTabByUrl('http://www.dhdzp.com');
//參數(shù)true為禁用,false或不提供值為啟用
tab.setDisable(true);
</script>
CleverTab.setLock方法:
設(shè)置該Tab的locked屬性,設(shè)置locked為true后,該Tab的不允許關(guān)閉
var tabs = ('#tabs').cleverTabs();
var tab = tabs.getTabByUrl('http://www.dhdzp.com');
//參數(shù)true為鎖定,false或不提供值為解鎖
tab.setLock(true);
</script>
------------------------------2011.06.27 更新---------------------------------
"改變不了別人,就改變自已吧"
在現(xiàn)在的頁(yè)面中,多數(shù)情況下都可能由幾部分組成,比如:Banner,Navigator,Content等,而為了工作區(qū)域變的更大,很多時(shí)候諸如Banner,Navigator或者其他的Panel都會(huì)收起來(lái)(Collapse),這個(gè)時(shí)候問(wèn)題來(lái)了,當(dāng)初我給tabs定義了width: 80%; height: 90%; 現(xiàn)在tabs的width和height發(fā)生了變化,可是內(nèi)部的Tab頁(yè)面還沒有收到這個(gè)變化,它還是按照之前的size顯示呢,更要命的是resize事件居然只有window和body才有,div居然不支持此事件!真不知道他們是怎么想的...在之前的cleverTabs中,我綁定了window.resize事件,但是問(wèn)題在于我上面舉的例子中,window的size實(shí)際上沒有發(fā)生變化,甚至body也沒有,但是tabs的大小發(fā)生變化了,在這種情況下,如果您使用了默認(rèn)的tabPenelContainer,那一定得處理tabs的resize事件,可是tabs就是一個(gè)div嘛,哪來(lái)的resize?昨晚在睡前突然想到個(gè)辦法,既然能"改變不了別人,就改變自已",那么就能"自已處理不了的事,就交給別人去處理吧"。把resize“外包”出去算了。于是對(duì)原來(lái)的代碼做了修改,在CleverTabs構(gòu)造函數(shù)中,為CleverTabs的prototype添加了resizePanelContainer函數(shù),tabs自已不知道發(fā)生了resize事件,但總歸有人知道發(fā)生了,誰(shuí)知道誰(shuí)調(diào)用,所謂的能者多勞?
CleverTabs.resizePanelContainer方法:
當(dāng)使用CleverTabs默認(rèn)的PanelContainer時(shí),重新設(shè)置PanelContainer的size。
<script type="text/javascript">
var tabs;
$(function () {
tabs = $('#tabs').cleverTabs();
$(window).bind('resize', function () {
//當(dāng)發(fā)生window.resize事件時(shí),重新默認(rèn)的tabs的PanelContainer的大小
tabs.resizePanelContainer();
});
</script>
演示 http://demo.jb51.net/js/2011/CleverTabs/index.htm
源碼下載 /201106/yuanma/CleverTabs.rar
相關(guān)文章
jquery實(shí)現(xiàn)簡(jiǎn)潔文件上傳表單樣式
這篇文章向大家推薦了一款基于jquery實(shí)現(xiàn)的簡(jiǎn)潔文件上傳表單樣式,實(shí)現(xiàn)效果大方精致,極力推薦給大家,希望大家可以喜歡。2015-11-11
jQuery實(shí)現(xiàn)帶遮罩層效果的blockUI彈出層示例【附demo源碼下載】
這篇文章主要介紹了jQuery實(shí)現(xiàn)帶遮罩層效果的blockUI彈出層,可實(shí)現(xiàn)帶有彈出遮罩層效果的彈出對(duì)話框功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09
jQuery實(shí)現(xiàn)當(dāng)前頁(yè)面標(biāo)簽高亮顯示的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)當(dāng)前頁(yè)面標(biāo)簽高亮顯示的方法,涉及jQuery通過(guò)自定義函數(shù)操作css樣式的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
jQuery基于Ajax實(shí)現(xiàn)讀取XML數(shù)據(jù)功能示例
這篇文章主要介紹了jQuery基于Ajax實(shí)現(xiàn)讀取XML數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了jQuery基于ajax的get方式獲取xml文件數(shù)據(jù)并輸出顯示相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
jQuery 1.9.1源碼分析系列(十四)之常用jQuery工具
這篇文章主要介紹了jQuery 1.9.1源碼分析系列(十四)之常用jQuery工具的相關(guān)資料,需要的朋友可以參考下2015-12-12
jquery實(shí)現(xiàn)移動(dòng)端懸浮拖拽框
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)移動(dòng)端懸浮拖拽框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
jquery插件開發(fā)注意事項(xiàng)小結(jié)
Jquery是繼prototype之后又一個(gè)優(yōu)秀的Javascrīpt框架。它是輕量級(jí)的js庫(kù)(壓縮后只有21k) ,它兼容CSS3,還兼容各種瀏覽器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)2013-06-06
jquery插件unobtrusive實(shí)現(xiàn)片段式加載
本文給大家分享的是使用jquery插件unobtrusive實(shí)現(xiàn)片段式加載,效果非常不錯(cuò),有需要的小伙伴可以參考下。2015-06-06
jQuery插件kinMaxShow擴(kuò)展效果用法實(shí)例
這篇文章主要介紹了jQuery插件kinMaxShow擴(kuò)展效果用法,實(shí)例分析了kinMaxShow擴(kuò)展的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
最常見的左側(cè)分類菜單欄jQuery實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了最常見的左側(cè)分類菜單欄jQuery實(shí)現(xiàn)代碼,仿京東、淘寶等各大類網(wǎng)站效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11

