diff --git a/js/bootstrap-tab.js b/js/bootstrap-tab.js index dfcc8441256483f7f10ce45668ca3f1487af607d..ef0b175979634bef1577fba85feff954b6821c37 100644 --- a/js/bootstrap-tab.js +++ b/js/bootstrap-tab.js @@ -49,7 +49,7 @@ if ( $this.parent('li').hasClass('active') ) return - previous = $ul.find('.active a').last()[0] + previous = $ul.find('.active :first-child').last()[0] e = $.Event('show', { relatedTarget: previous diff --git a/js/tests/unit/bootstrap-tab.js b/js/tests/unit/bootstrap-tab.js index 9878047810dd0be1a8595e112d3aa20a8b0895cc..d6887d6d499df87c10e67bc229f5423305f8ed6c 100644 --- a/js/tests/unit/bootstrap-tab.js +++ b/js/tests/unit/bootstrap-tab.js @@ -58,4 +58,26 @@ $(function () { .tab('show') }) + test("should set relatedTarget for any target element", function () { + + stop(); + + var pillsHTML = + '<ul class="pills">' + + '<li class="active"><span href="#home">Home</span></li>' + + '<li><span href="#profile">Profile</span></li>' + + '</ul>' + + var pills = $(pillsHTML).appendTo($('#qunit-fixture')) + var tabContent = $('<ul><li class="in active" id="home"></li><li id="profile"></li></ul>').appendTo($('#qunit-fixture')) + + pills.find('li:last span') + .on('show', function (e) { + equals(e.target, pills.find('li:last span')[0]) + equals(e.relatedTarget, pills.find('li:first span')[0]) + start() + }) + .tab('show') + + }) }) \ No newline at end of file