From ab8dbc214e7ea43fec65c4464b8db7392f3df905 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 10 Oct 2014 15:50:00 +0100 Subject: Implement `hide` and `hidden` events for tabs Closes #14772. --- js/tab.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'js/tab.js') diff --git a/js/tab.js b/js/tab.js index d7023c817..c597d7ab6 100644 --- a/js/tab.js +++ b/js/tab.js @@ -33,22 +33,30 @@ if ($this.parent('li').hasClass('active')) return - var previous = $ul.find('.active:last a')[0] - var e = $.Event('show.bs.tab', { - relatedTarget: previous + var $previous = $ul.find('.active:last a') + var hideEvent = $.Event('hide.bs.tab', { + relatedTarget: $this[0] + }) + var showEvent = $.Event('show.bs.tab', { + relatedTarget: $previous[0] }) - $this.trigger(e) + $previous.trigger(hideEvent) + $this.trigger(showEvent) - if (e.isDefaultPrevented()) return + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return var $target = $(selector) this.activate($this.closest('li'), $ul) this.activate($target, $target.parent(), function () { + $previous.trigger({ + type: 'hidden.bs.tab', + relatedTarget: $this[0] + }) $this.trigger({ type: 'shown.bs.tab', - relatedTarget: previous + relatedTarget: $previous[0] }) }) } -- cgit v1.2.3