本文实例为大家分享了Bootstrap Tabs选项卡Ajax加载数据的具体代码,供大家参考,具体内容如下
HTML代码(仅展示了部分关键性代码)
<li class="active"> <a href="#home" data-toggle="tab" name="menu-ctrl"> <span class="glyphicon glyphicon-home"> </span> 主页 <span class="sr-only">(current)</span> </a> </li> <li> <a href="#test-paper"> <span class="glyphicon glyphicon-list-alt"> </span> 试卷库 </a> </li> <li> <a href="#favorite"> <span class="glyphicon glyphicon-bookmark"> </span> 我的收藏 </a> </li> <li> <a href="#about"> <span class="glyphicon glyphicon-info-sign"> </span> 关于 </a> </li> <!--- /. Nav tabs---> <div id="myTabContent" class="tab-content"> <!-- 试卷库页面 --> <div class="tab-pane fade" id="test-paper"></div> <!-- 收藏页面 --> <div class="tab-pane fade" id="favorite"></div> <!-- 关于页面 --> <div class="tab-pane fade" id="about"></div> <!-- 用户信息页面 --> <div class="tab-pane fade" id="user-info-page"></div> </div> <!--- /.tab-content ---->
实现思路:
1.使用JavaScript激活tab选项卡:
$("a[href=['#about']").click(function(e){ $(this).tab('show'); e.preventDefault(); //阻止a标签的默认行为 });
2.使用jQuery的load()方法异步加载 tab-pane容器中的内容;
$('#about').load('pages/about.jsp');
大功告成!
那么接下来对上面的思路进行简单的封装
JavaScript代码:
/** * 激活tab选项卡并使用ajax异步加载内容 * @param {Object} tabsId * @param {Object} url */ function showTabs(tabsId,url) { $("a[href='#"+tabsId+"']").tab('show'); var $tabContent = $('#'+tabsId); if($tabContent.length < 100) { $tabContent.load(url); //console.info(tabsId + ' load done!'); } } //依次为每个tab导航a标签添加单击事件 $('a[href="#test-paper"]').click(function(e) { showTabs('test-paper','pages/test-paper.jsp'); e.preventDefault(); }); //$('a[href=..]')... //.. //.. 这么长的代码!!
考虑到每个a标签的绑定的都是click事件,只是参数不同而已, 可以尝试着把tabs的数据用json数组存储起来;
//准备tabs数据 var tabsData = [{ "id" : "test-paper", "url" : "pages/test-paper.jsp" },{ "id" : "favorite", "url" : "pages/favorite.jsp" },{ "id" : "about", "url" : "pages/about.jsp" },{ "id" : "user-info-page", "url" : "pages/user-info.jsp" }]; //遍历json数组,循环添加a标签click事件: $(tabsData).each(function(){ //console.info(this.id + "--->" + this.url); $("a[href='#"+this.id+"']").click(function(e) { showTabs(this.id,this.url); e.preventDefault(); }); });
终于完成"color: #800000">bind(type,[data],fn);
//fn: 绑定到每个匹配元素的事件上面的处理函数
//可以尝试把每个tab的参数通过data传递到外部的function中,用作每个a标签的click响应函数
改写后的$.each()循环:
$(tabsData).each(function(){ //console.info(this.id + "--->" + this.url); $("a[href='#"+this.id+"']").bind('click',{ id : this.id, url : this.url },tabsHandler); }); function tabsHandler(event) { var data = event.data; showTabs(data.id,data.url); return false; //阻止默认a标签响应 }
这次总算是成功了!
看下演示图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“使用Bootstrap Tabs选项卡Ajax加载数据实现”评论...
更新动态
2024年11月18日
2024年11月18日
- 陈洁仪.1994-心痛【立得唱片】【WAV+CUE】
- 车载必备专用超级选曲《劲爆中文DJ》2CD[WAV+CUE]
- 群星《民歌流淌60年(黑胶CD)》2CD[WAV+分轨]
- 群星《美丽时光》紫银合金AQCD[WAV+CUE]
- 群星《12大巨星畅销精选集》[WAV分轨][1.1G]
- 华语排行冠军曲《百事音乐风云榜》[WAV+CUE][1G]
- 奔驰汽车音乐圣经《醇声典范[白金嗓子] 男极声》音乐传真[WAV+CUE][1G]
- 陈影《如影随形HQ》头版限量[低速原抓WAV+CUE]
- 黄乙玲1996-心痛酒来洗[台湾首版][WAV+CUE]
- 曾庆瑜1990-随风而逝[日本东芝1A1首版][WAV+CUE]
- 群星.2015-凭着爱ADMS2CD【华纳】【WAV+CUE】
- 陈冠希.2017-一只猴子3部曲【摩登天空】【WAV+CUE】
- 金元萱.1996-迷迷糊糊【宝丽金】【WAV+CUE】
- 齐秦《燃烧爱情》马来西亚版[WAV+CUE][1G]
- 动力火车《结伴》2024最新 [FLAC分轨][1G]