CleverTabs是一款jQuery插件,所需jQuery版本:1.6.1,jQuery UI样式版本:1.8.13;其功能为创建jQuery UI风格的Tab用于显示iframe。

本示例中符加了jQuery.contextMenu插件,我修改了其样式,使用了jQuery UI的皮肤

运行一下

效果如下图:

初级应用示例:

HTML代码:

  1. <div id="tabs"><ul></ul></div>
复制

Javascript代码:

  1. <script type="text/javascript">
  2. $(function(){
  3. tabs = $('#tabs').cleverTabs();
  4. tabs.add({
  5. url:'http://think8848.cnblogs.com',
  6. label:'think8848'
  7. });
  8. });
  9. </script>
复制

CleverTabs详细说明:

CleverTabs为所有Tab的容器

  1. var tabs;
  2. <script type="text/javascript">
  3. $(function(){
  4. tabs = $('#tabs').cleverTabs({
  5. //是否安装右键菜单(默认: true)
  6. setupContextMenu:true,
  7. //右键菜单定义, 右键菜单功能由jquery.contextMenu插件提供
  8. //详见: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/
  9. //本插件中对原contextMenu插件中的样式做了修改,使用了jQuery UI皮肤
  10. contextMenu:{
  11. element: $('#contextMenuElementId'),
  12. handler:function(action, el, pos){/*do something...*/}
  13. },
  14. //开启Tab后是否锁定(不允许关闭,默认: false)
  15. lock:false,
  16. //开启Tab后是否禁用(不允许激活和操作iframe内容,默认: false)
  17. disable:false,
  18. //当tabs中只有一个Tab时,是否锁定该Tab(默认: true)
  19. lockOnlyOne:true,
  20. //显示iframe的容器(默认创建在tabs元素中)
  21. panelContainer: $('#panelContainerElementId')/*,
  22. 其中
  23. tabHeaderTemplate: '', //(Tab用于控制的头模板)
  24. tabPanelTemplate: '', //(Tab用于显示的Panel模板)
  25. uidGenerator: function() {} //(Tab唯一id生成器)
  26. 功能现在不启用,等有时间完善后再启用*/
  27. });
  28. tabs.add({
  29. url:'http://think8848.cnblogs.com',
  30. label:'think8848'
  31. });
  32. });
  33. </script>
复制

CleverTabs.add方法

添加一个新的Tab并使之成为激活状态,如果将要添加的url已经存在,则会激活该Tab

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. tabs.add({
  4. //必须是在tabs内唯一的id
  5. id:'uniqueId',
  6. //将要在iframe的src属性设置的值
  7. url:'iframe.src',
  8. //显示在Tab头上的文字
  9. label:'tab header',
  10. //关闭本Tab时需要刷新的Tab的url(默认: null)
  11. closeREfresh:'tab url',
  12. //关闭本Tab时需要激活的Tab的url(默认: null)
  13. closeActivate:'tab url',
  14. //关闭本Tab时需要执行的回调函数
  15. callback:function(){/*do something*/}
  16. });
  17. </script>
复制

CleverTabs.getCurrentTab方法

获取当前处于激活状态的Tab

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getCurrentTab();
  4. </script>
复制

CleverTabs.getTabByUrl方法

获取指定url的Tab实例

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
  4. </script>
复制

CleverTabs.clear方法

关闭tabs内所有未锁定的Tab

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.clear();
  4. </script>
复制

CleverTab.deactivate方法

使Tab页面处于未激活状态,但不建议在代码中使用 
CleverTab.prevTab方法: 
获取该Tab之前的Tab

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
  4. var prevTab = tab.prevTab();
  5. </script>
复制

CleverTab.nextTab方法

获取该Tab之后的Tab

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
  4. var prevTab = tab.nextTab();
  5. </script>
复制

CleverTab.kill方法

从tabs中移移该Tab

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
  4. tab.kill();
  5. </script>
复制

CleverTab.refresh方法

刷新该Tab的iframe中的内容

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
  4. tab.refresh();
  5. </script>
复制

CleverTab.setDisable方法

设置该Tab的disabled属性,设置disabled为true后,自动设置该Tab的locked属性为true

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
  4. //参数true为禁用,false或不提供值为启用
  5. tab.setDisable(true);
  6. </script>
复制

CleverTab.setLock方法

设置该Tab的locked属性,设置locked为true后,该Tab的不允许关闭

  1. <script type="text/javascript">
  2. var tabs =('#tabs').cleverTabs();
  3. var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
  4. //参数true为锁定,false或不提供值为解锁
  5. tab.setLock(true);
  6. </script>
复制

"改变不了别人,就改变自已吧"

在现在的页面中,多数情况下都可能由几部分组成,比如:Banner,Navigator,Content等,而为了工作区域变的更大,很多时候诸如Banner,Navigator或者其他的Panel都会收起来(Collapse),这个时候问题来了,当初我给tabs定义了width: 80%; height: 90%; 现在tabs的width和height发生了变化,可是内部的Tab页面还没有收到这个变化,它还是按照之前的size显示呢,更要命的是resize事件居然只有window和body才有,div居然不支持此事件!真不知道他们是怎么想的...在之前的cleverTabs中,我绑定了window.resize事件,但是问题在于我上面举的例子中,window的size实际上没有发生变化,甚至body也没有,但是tabs的大小发生变化了,在这种情况下,如果您使用了默认的tabPenelContainer,那一定得处理tabs的resize事件,可是tabs就是一个div嘛,哪来的resize?昨晚在睡前突然想到个办法,既然能"改变不了别人,就改变自已",那么就能"自已处理不了的事,就交给别人去处理吧"。把resize“外包”出去算了。于是对原来的代码做了修改,在CleverTabs构造函数中,为CleverTabs的prototype添加了resizePanelContainer函数,tabs自已不知道发生了resize事件,但总归有人知道发生了,谁知道谁调用,所谓的能者多劳?

CleverTabs.resizePanelContainer方法:

当使用CleverTabs默认的PanelContainer时,重新设置PanelContainer的size。

  1. <script type="text/javascript">
  2. var tabs;
  3. $(function(){
  4. tabs = $('#tabs').cleverTabs();
  5. $(window).bind('resize',function(){
  6. //当发生window.resize事件时,重新默认的tabs的PanelContainer的大小
  7. tabs.resizePanelContainer();
  8. });
  9. </script>
复制

jQuery 选项卡 CleverTabs的更多相关文章

  1. 实用的Jquery选项卡TAB

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 30个实用的jQuery选项卡/导航教程推荐

    很多网站设计中都使用了选项卡(tabs),在制作选项卡时应用jQuery能够实现很多炫酷的过渡和动画效果.本文为你介绍30个实用的jQuery选项卡教程,希望对你有帮助. 1. Animated Ta ...

  3. click事件和jquery选项卡

    一. click事件 实现效果是点击切换按钮,可以重复的切换背景色 <!DOCTYPE html> <html lang="en"> <head> ...

  4. jQuery选项卡tabulous

    jQuery选项卡tabulous,jQuery,选项卡,tab标签切换代码,扁平设计,jQuery选项卡tabulous是一款支持Scale.Slide.Scale Up.Flip等效果jquery ...

  5. 简单的jquery选项卡效果

    html部分 <ul class="tab"> <li>最新</li> <li class="cur">热门&l ...

  6. jquery选项卡

    用jquery实现选项卡功能 css部分: html部分: 记得一定要引入jquery文件 jquery部分:

  7. jQuery选项卡插件

    html结构 <ul id="tabs" class="tabs"> <li data-tab="users">Us ...

  8. javascript与jQuery选项卡效果

    HTML结构: <!doctype html><html><head><meta charset="utf-8"><title ...

  9. 【特效】jquery选项卡插件,页面多个选项卡统一调用

    把选项卡整合了一下,写成个插件,这样可以整个站,或整个页面有多个选项卡时,统一调用.代码的具体注意事项已经写进注释了.用于js获取元素的class名称必须有,选项卡本身的样式,另再取一个名字来设置(本 ...

随机推荐

  1. RabbitMQ学习之(四)_PHP操作RabbitMQ简单Demo

    原理流程 生产者主要做的是:创建连接-->创建channel-->创建交换机对象-->发送消息 消费者主要做的是:创建连接-->创建channel-->创建交换机--&g ...

  2. js 图表处理之Echar

    官网学习链接:http://echarts.baidu.com/tutorial.html#5%20分钟上手%20ECharts 案例代码: <!DOCTYPE html> <htm ...

  3. IO多路复用客户端-服务器模型

    IO多路复用服务器 -- 实现字符回射 服务器端 /************************************************************************* ...

  4. Calling Convention的总结

    因为经常需要和不同的Calling Convention打交道,前段时间整理了一下它们之间的区别,如下: 清理堆栈 参数压栈顺序 命名规则 (MSVC++) 备注 Cdecl 调用者 (Caller) ...

  5. git-修改远程的URL

    git remote set-url命令修改remote URL git remote set-url传递两个参数 remote name.例如,origin或者upstream new remote ...

  6. git如何回退单个文件到某一个commit

    答:操作步骤如下: 1. git log "filename" (如:git log README) 2. git reset "commit-id" &quo ...

  7. 防止xss(脚本攻击)的方法之过滤器

    一  什么是脚本注入 概念我就不说了 直接百度一份 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端 ...

  8. SQL查询入门(下篇)

    SQL查询入门(下篇)   文章转自:http://www.cnblogs.com/CareySon/archive/2011/05/18/2049727.html 引言 在前两篇文章中,对于单表查询 ...

  9. C和C#两种方式实现邮件的简单发送

    内容为通过两种方式发送邮件--1.C语言发送邮件   2.C#发送邮件 一,C语言进行邮件的发送 C语言发送邮件的步骤的简单解析: 1.创建TCP连接    socket() 2.连接到邮箱服务器  ...

  10. MySQL Order By Rand()效率分析

    最近研究了一下MYSQL的随机抽取实现方法.举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() L ...