使用Bootstrap Tabs选项卡Ajax加载数据实现,是一个常见的前端技术组合。其主要流程如下:
-
在页面上创建Bootstrap Tabs选项卡结构,即一个ul列表和多个对应的div内容区域。
-
在每个内容区域中预留一个空div,用于接收Ajax加载后的数据,同时在ul列表中对应的li标签中添加数据源链接。
-
当用户点击对应li标签时,通过Ajax从后台获取数据,并将获取到的数据填充到内容区域对应的空div中。
-
实现过程中需要注意的细节有:事件绑定、数据传递格式、loading效果等。
下面通过两个具体的示例演示如何实现Bootstrap Tabs选项卡Ajax加载数据。
示例1:从本地JSON文件中获取数据
index.html代码:
<ul class="nav nav-tabs" id="myTab">
<li><a href="data1.json" data-toggle="tab">Tab1</a></li>
<li><a href="data2.json" data-toggle="tab">Tab2</a></li>
<li><a href="data3.json" data-toggle="tab">Tab3</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1"></div>
<div class="tab-pane" id="tab2"></div>
<div class="tab-pane" id="tab3"></div>
</div>
JavaScript代码:
$(function(){
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href"); // activated tab
$.ajax({
url: target,
success: function(result){
$(target + ' ~ .tab-content').find(target).html(result);
},
error: function(){
$(target + ' ~ .tab-content').find(target).html('<p class="text-danger">数据获取失败</p>');
}
});
});
});
data1.json、data2.json、data3.json文件中的数据格式可以自由定义,只需保证能够正确解析即可。
示例2:从远程数据源获取数据
index.html代码:
<ul class="nav nav-tabs" id="myTab">
<li><a href="https://jsonplaceholder.typicode.com/todos?userId=1" data-toggle="tab">User1</a></li>
<li><a href="https://jsonplaceholder.typicode.com/todos?userId=2" data-toggle="tab">User2</a></li>
<li><a href="https://jsonplaceholder.typicode.com/todos?userId=3" data-toggle="tab">User3</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab1"></div>
<div class="tab-pane" id="tab2"></div>
<div class="tab-pane" id="tab3"></div>
</div>
JavaScript代码:
$(function(){
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href"); // activated tab
$(target).html('<p class="text-info">数据加载中...</p>')
$.ajax({
url: $(e.target).attr("href"),
dataType: 'json',
success: function(result){
var html = '<ul>';
for(var i=0; i<result.length; i++){
html+= '<li>'+result[i].title+'</li>'
}
html+= '</ul>';
$(target).html(html);
},
error: function(){
$(target).html('<p class="text-danger">数据获取失败</p>');
}
});
});
});
以上两个示例分别从本地json文件和远程数据源获取数据,并将数据以列表的形式呈现。这就是Bootstrap Tabs选项卡Ajax加载数据实现的一种方式,开发者在实际项目中可以根据具体的需求来自由定制。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Bootstrap Tabs选项卡Ajax加载数据实现 - Python技术站