From e16de59260c860af67748a484631ae3de56fc244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20B=C3=B8gebjerg=20Pedersen?= Date: Sun, 18 Sep 2011 10:15:24 +0200 Subject: Added changed event to bootstrap-tabs.js --- js/bootstrap-tabs.js | 4 +++- js/tests/unit/bootstrap-tabs.js | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 9 deletions(-) (limited to 'js') diff --git a/js/bootstrap-tabs.js b/js/bootstrap-tabs.js index 807b366a3..380ded17c 100644 --- a/js/bootstrap-tabs.js +++ b/js/bootstrap-tabs.js @@ -30,11 +30,12 @@ , href = $this.attr('href') , $ul = $(e.liveFired) , $controlled + , current = $ul.find('.active a').attr('href') if (/^#\w+/.test(href)) { e.preventDefault() - if ($this.hasClass('active')) { + if ($this.parent('li').hasClass('active')) { return } @@ -42,6 +43,7 @@ activate($this.parent('li'), $ul) activate($href, $href.parent()) + $this.trigger("changed", {from:current, to:href}) } } diff --git a/js/tests/unit/bootstrap-tabs.js b/js/tests/unit/bootstrap-tabs.js index 2ee6761ed..0b92b94db 100644 --- a/js/tests/unit/bootstrap-tabs.js +++ b/js/tests/unit/bootstrap-tabs.js @@ -11,39 +11,61 @@ $(function () { }) test("should activate element by tab id", function () { - var tabsHTML = '') $('').appendTo("#qunit-runoff") - $(tabsHTML).tabs().find('a').last().click() + $tabsHTML.tabs().find('a').last().click() equals($("#qunit-runoff").find('.active').attr('id'), "profile") - $(tabsHTML).tabs().find('a').first().click() + $tabsHTML.tabs().find('a').first().click() equals($("#qunit-runoff").find('.active').attr('id'), "home") $("#qunit-runoff").empty() }) test("should activate element by pill id", function () { - var pillsHTML = '') $('').appendTo("#qunit-runoff") - $(pillsHTML).pills().find('a').last().click() + $pillsHTML.pills().find('a').last().click() equals($("#qunit-runoff").find('.active').attr('id'), "profile") - $(pillsHTML).pills().find('a').first().click() + $pillsHTML.pills().find('a').first().click() equals($("#qunit-runoff").find('.active').attr('id'), "home") $("#qunit-runoff").empty() }) + + test( "should trigger changed event on activate", function () { + var $tabsHTML = $('') + , changeCount = 0 + , from + , to; + + $tabsHTML.tabs().bind( "changed", function (e, c){ + from = c.from; + to = c.to; + changeCount++ + }) + + $tabsHTML.tabs().find('a').last().click() + + equals(from, "#home") + equals(to, "#profile") + equals(changeCount, 1) + }) }) \ No newline at end of file -- cgit v1.2.3 From b827303511d68fdb3f913aef63f97b5f77725d68 Mon Sep 17 00:00:00 2001 From: Jacob Thornton Date: Thu, 29 Sep 2011 22:21:55 -0700 Subject: changed event should be change event --- js/bootstrap-tabs.js | 2 +- js/tests/unit/bootstrap-tabs.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'js') diff --git a/js/bootstrap-tabs.js b/js/bootstrap-tabs.js index 563d88f01..938a54cc0 100644 --- a/js/bootstrap-tabs.js +++ b/js/bootstrap-tabs.js @@ -43,7 +43,7 @@ activate($this.parent('li'), $ul) activate($href, $href.parent()) - $this.trigger("changed", {from:current, to:href}) + $this.trigger("change", { from: current, to: href }) } } diff --git a/js/tests/unit/bootstrap-tabs.js b/js/tests/unit/bootstrap-tabs.js index 0b92b94db..3c2610c51 100644 --- a/js/tests/unit/bootstrap-tabs.js +++ b/js/tests/unit/bootstrap-tabs.js @@ -45,8 +45,8 @@ $(function () { $("#qunit-runoff").empty() }) - - test( "should trigger changed event on activate", function () { + + test( "should trigger change event on activate", function () { var $tabsHTML = $('') - , changeCount = 0 - , from - , to; - - $tabsHTML.tabs().bind( "change", function (e, c){ - from = c.from; - to = c.to; - changeCount++ - }) - - $tabsHTML.tabs().find('a').last().click() - - equals(from, "#home") - equals(to, "#profile") - equals(changeCount, 1) + , $target + , count = 0 + , relatedTarget + , target + + $tabsHTML + .tabs() + .bind( "change", function (e) { + target = e.target + relatedTarget = e.relatedTarget + count++ + }) + + $target = $tabsHTML + .find('a') + .last() + .click() + + equals(relatedTarget, $tabsHTML.find('a').first()[0]) + equals(target, $target[0]) + equals(count, 1) }) }) \ No newline at end of file -- cgit v1.2.3