Skip to content

Commit f54f495

Browse files
committed
Added Support for "pill" tabs and callback functions
Supporting data-toggle="pill" as well, and data-callback="yourjavascriptfunction()" to allow for a callback once your url is lazy loaded.
1 parent 95e8740 commit f54f495

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

Scripts/MT.BootstrapTabsLazyloader.js

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,16 @@ Adds Lazy loading feature to bootstrap tabs
99
*/
1010

1111

12-
$(function() {
12+
$(function () {
1313
$(document).on('shown.bs.tab', '.nav-tabs.lazyload a[data-toggle="tab"]:not(.loaded)', function (e) {
1414
var loader = '<div class="text-center"><i class="fa fa-spin fa-spinner fa-2x text-muted"></i></div>';
1515

1616
var pane = $(e.target).attr('href');
1717

1818
var url = $(e.target).data('url');
1919

20+
var callback = $(e.target).data('callback');
21+
2022
if (url) {
2123
$(pane).html(loader);
2224

@@ -28,6 +30,40 @@ $(function() {
2830
.fail(function () {
2931
var alertDiv = '<div class="alert alert-danger"><i class="fa fa-exclamation-triangle"></i> Error!!!</div>';
3032
$(pane).html(alertDiv);
33+
})
34+
.done(function () {
35+
if (callback) {
36+
eval(callback);
37+
}
38+
});
39+
}
40+
});
41+
42+
$(document).on('shown.bs.tab', '.nav-pills.lazyload a[data-toggle="pill"]:not(.loaded)', function (e) {
43+
var loader = '<div class="text-center"><i class="fa fa-spin fa-spinner fa-2x text-muted"></i></div>';
44+
45+
var pane = $(e.target).attr('href');
46+
47+
var url = $(e.target).data('url');
48+
49+
var callback = $(e.target).data('callback');
50+
51+
if (url) {
52+
$(pane).html(loader);
53+
54+
var caller = $(this);
55+
$.get(url, function (data) {
56+
$(pane).html(data);
57+
$(caller).addClass('loaded');
58+
})
59+
.fail(function () {
60+
var alertDiv = '<div class="alert alert-danger"><i class="fa fa-exclamation-triangle"></i> Error!!!</div>';
61+
$(pane).html(alertDiv);
62+
})
63+
.done(function () {
64+
if (callback) {
65+
eval(callback);
66+
}
3167
});
3268
}
3369
});

0 commit comments

Comments
 (0)