Skip to content

Commit d9e2d8d

Browse files
committed
Merge pull request #34 from amitree/master
Support for data-toggle="tab" links within tab content
2 parents 8b78157 + 51c5ce2 commit d9e2d8d

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

bootstrap-tabcollapse.js

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,20 @@
9292
});
9393
this.$accordion.html('');
9494

95+
if(this.options.updateLinks) {
96+
var $tabContents = $(this.options.tabContentSelector) || this.$tabs.siblings('.tab-content')
97+
$tabContents.find('[data-toggle-was="tab"], [data-toggle-was="pill"]').each(function() {
98+
var $el = $(this);
99+
var href = $el.attr('href').replace(/-collapse$/g, '');
100+
$el.attr({
101+
'data-toggle': $el.attr('data-toggle-was'),
102+
'data-toggle-was': '',
103+
'data-parent': '',
104+
href: href
105+
});
106+
});
107+
}
108+
95109
this.$tabs.trigger($.Event('shown-tabs.bs.tabcollapse'));
96110
};
97111

@@ -107,6 +121,21 @@
107121
view.$accordion.append(view._createAccordionGroup(view.$accordion.attr('id'), $heading.detach()));
108122
});
109123

124+
if(this.options.updateLinks) {
125+
var parentId = this.$accordion.attr('id');
126+
var $selector = this.$accordion.find('.js-tabcollapse-panel-body');
127+
$selector.find('[data-toggle="tab"], [data-toggle="pill"]').each(function() {
128+
var $el = $(this);
129+
var href = $el.attr('href') + '-collapse';
130+
$el.attr({
131+
'data-toggle-was': $el.attr('data-toggle'),
132+
'data-toggle': 'collapse',
133+
'data-parent': '#' + parentId,
134+
href: href
135+
});
136+
});
137+
}
138+
110139
this.$tabs.trigger($.Event('shown-accordion.bs.tabcollapse'));
111140
};
112141

@@ -145,7 +174,8 @@
145174
this.$accordion = $('<div class="panel-group ' + this.options.accordionClass + '" id="' + this.$tabs.attr('id') + '-accordion' +'"></div>');
146175
this.$tabs.after(this.$accordion);
147176
this.$tabs.addClass(this.options.tabsClass);
148-
this.$tabs.siblings('.tab-content').addClass(this.options.tabsClass);
177+
var $tabContents = $(this.options.tabContentSelector) || this.$tabs.siblings('.tab-content')
178+
$tabContents.addClass(this.options.tabsClass);
149179
};
150180

151181
TabCollapse.prototype._createAccordionGroup = function(parentId, $heading){

0 commit comments

Comments
 (0)