aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob <[email protected]>2014-03-24 22:42:40 -0400
committerJacob <[email protected]>2014-03-24 22:42:40 -0400
commitb3421cf040c92d50ec709a7ed761eb6ce9057e5b (patch)
treea390c15e1a5084f650a619c3ad7b5d4902883846
parentbc250fb1e7c289ea07b9bcd117d9093021b16f46 (diff)
parent674b41dd632d4911d291a593a23a5563a1a67811 (diff)
downloadbootstrap-b3421cf040c92d50ec709a7ed761eb6ce9057e5b.tar.xz
bootstrap-b3421cf040c92d50ec709a7ed761eb6ce9057e5b.zip
Merge pull request #13165 from stefanneculai/master
Fix popover when using append
-rw-r--r--js/popover.js2
-rw-r--r--js/tests/unit/popover.js29
2 files changed, 30 insertions, 1 deletions
diff --git a/js/popover.js b/js/popover.js
index 23aa82987..9cf9f7113 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)
diff --git a/js/tests/unit/popover.js b/js/tests/unit/popover.js
index c08b6d8ef..24f2f6f03 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 = $('<div>').html('loves writing tests (╯°□°)╯︵ ┻━┻')
+
+ var popover = $('<a href="#">@fat</a>')
+ .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 = $('<a href="#" title="@mdo" data-content="loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻" >@mdo</a>')