From 41628c90a259101291a679fa112307a354fd32ee Mon Sep 17 00:00:00 2001 From: Stefan Neculai Date: Mon, 24 Mar 2014 18:49:03 +0200 Subject: [PATCH 1/2] Fix popover when using append. --- js/popover.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/popover.js b/js/popover.js index 23aa829879..9cf9f71136 100644 --- a/js/popover.js +++ b/js/popover.js @@ -44,7 +44,7 @@ var content = this.getContent() $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) - $tip.find('.popover-content')[ // we use append for html objects to maintain js events + $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' ](content) From 674b41dd632d4911d291a593a23a5563a1a67811 Mon Sep 17 00:00:00 2001 From: Stefan Neculai Date: Mon, 24 Mar 2014 19:49:06 +0200 Subject: [PATCH 2/2] Add test for popover. --- js/tests/unit/popover.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/js/tests/unit/popover.js b/js/tests/unit/popover.js index c08b6d8ef2..24f2f6f03e 100644 --- a/js/tests/unit/popover.js +++ b/js/tests/unit/popover.js @@ -61,6 +61,35 @@ $(function () { $('#qunit-fixture').empty() }) + test('should not duplicate HTML object', function () { + $.support.transition = false + + $div = $('
').html('loves writing tests (╯°□°)╯︵ ┻━┻') + + var popover = $('@fat') + .appendTo('#qunit-fixture') + .popover({ + content: function () { + return $div + } + }) + + popover.popover('show') + ok($('.popover').length, 'popover was inserted') + equal($('.popover .popover-content').html(), $div, 'content correctly inserted') + + popover.popover('hide') + ok(!$('.popover').length, 'popover was removed') + + popover.popover('show') + ok($('.popover').length, 'popover was inserted') + equal($('.popover .popover-content').html(), $div, 'content correctly inserted') + + popover.popover('hide') + ok(!$('.popover').length, 'popover was removed') + $('#qunit-fixture').empty() + }) + test('should get title and content from attributes', function () { $.support.transition = false var popover = $('@mdo')