本文实例为大家分享了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
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。