多iframe使用tab标签方式添加、删除、切换的处理实例
紧接着上一篇随笔iframe的内容增高或缩减时设置其iframe的高度的处理方案
如果采用iframe来切换显示内容的方式来展现办公Web。那么需要解决几个问题
1.tab标签需要和显示的iframe一一对应,当点击到某个tab页签的时候需要切换到对应的iframe。
2.需要有新增、删除页签的tab功能。
3.在tab页签之间切换的时候需要有一个记录点击的页签的历史记录的功能。何用?当你删除某个页签的时候,需要回溯到上一个页签。
4.不断添加页签,需要计算页签的宽度做适配。
本实例是这样做的
<div class="tabbable" id="tabs">
<!-- Tab标签列表 -->
<ul class="nav nav-tabs" id="myTab"></ul>
<!-- 显示内容列表,和Tab标签列表一一对应 -->
<div class="tab-content"></div>
</div>
如上,#myTab是用来保存Tab标签页的,.tab-content用来保存iframe页面列表。下面举例说明里面的内容,例子中有两个Tab页,效果图如下
主要style样式表如下
View Code
标签内容如下 <div class="tabbable" id="tabs">
<!-- 页面标签列表 -->
<ul class="nav nav-tabs" id="myTab">
<li id="tab-0" class="">
<a data-toggle="tab" href="#tab-content-0" > 首页 </a>
<i class="fa fa-times" onclick="deleteTab(0)"></i>
</li>
<li id="tab-10301" class="active">
<a data-toggle="tab" href="#tab-content-10301" >动向汇报</a>
<i class="fa fa-times" onclick="deleteTab(10301)"></i>
</li>
</ul>
<!-- 页面内容列表,和页面标签列表对应 -->
<div class="tab-content">
<div class=" " id="tab-content-0">
<iframe id="iframepage0" name="iframepage1" width="100%" frameborder="0" scrolling="no" src="/business/system/manage/welcome/list/page" height="311"></iframe>
</div>
<div id="tab-content-10301" class="active">
<iframe id="iframepage4" name="iframepage5" width="100%" frameborder="0" scrollin
g="no" src="/business/workReport/manage/list/myPage" height="311"></iframe>
</div>
</div>
</div>
看上面黑粗体字,tab标签列表中的a元素的href属性即是对应的页面内容DIV标签的id。tab标签li和内容标签div默认都是隐藏的,通过添加class active来使之显示出来。
实现点击切换显示tab显示的代码为
//切换tab页的显示
$(document).on('click','#myTab > li',function(e){
//清除原来显示的tab页
var oldTab = $("#myTab li.active").removeClass("active").find("a[data-toggle='tab']");
$(oldTab.attr("href")).removeClass("active");
//设置新的显示tab页
var newTab = $(this).addClass("active").find("a[data-toggle='tab']");
$(newTab.attr("href")).addClass("active");
refreshTabHistory(false/*isDelete*/,$(this).attr('id').substring(4));
})
//手动调用切换到要显示的tab页,当前的action只支持show
//eg:$("#tab-0 a[data-toggle='tab']").tab("show");iframe参数传递
$.fn.tab = function(action){
if(action == "show"){
$(this).parent().click();
}
}
新增和删除tab页
var currentTabId = '';//当前焦点Tab
//在非左侧菜单栏弹出的tab页也会用到该数据,如common.js中的pageForward函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论