diff --git a/docs/javascript.html b/docs/javascript.html
index 37f7df925b..917b90ae91 100644
--- a/docs/javascript.html
+++ b/docs/javascript.html
@@ -849,6 +849,14 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
diff --git a/docs/templates/pages/javascript.mustache b/docs/templates/pages/javascript.mustache
index dee6bb0f93..e0b291e1dc 100644
--- a/docs/templates/pages/javascript.mustache
+++ b/docs/templates/pages/javascript.mustache
@@ -779,6 +779,14 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
{{_i}}Object structure is: delay: { show: 500, hide: 100 }
{{/i}}
+
+ {{_i}}container{{/i}} |
+ {{_i}}string | false{{/i}} |
+ {{_i}}false{{/i}} |
+
+ {{_i}}Appends the tooltip to a specific element container: 'body' {{/i}}
+ |
+
diff --git a/js/bootstrap-tooltip.js b/js/bootstrap-tooltip.js
index 8c86733877..7f9588283a 100644
--- a/js/bootstrap-tooltip.js
+++ b/js/bootstrap-tooltip.js
@@ -129,7 +129,8 @@
$tip
.detach()
.css({ top: 0, left: 0, display: 'block' })
- .insertAfter(this.$element)
+
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
pos = this.getPosition()
@@ -290,6 +291,7 @@
, title: ''
, delay: 0
, html: false
+ , container: false
}
diff --git a/js/tests/unit/bootstrap-tooltip.js b/js/tests/unit/bootstrap-tooltip.js
index 1370ef381e..ef21bd96b4 100644
--- a/js/tests/unit/bootstrap-tooltip.js
+++ b/js/tests/unit/bootstrap-tooltip.js
@@ -241,4 +241,14 @@ $(function () {
.tooltip('toggle')
ok($(".tooltip").is('.fade.in'), 'tooltip should be toggled in')
})
+
+ test("should place tooltips inside the body", function () {
+ var tooltip = $('
')
+ .appendTo('#qunit-fixture')
+ .tooltip({container:'body'})
+ .tooltip('show')
+ ok($("body > .tooltip").length, 'inside the body')
+ ok(!$("#qunit-fixture > .tooltip").length, 'not found in parent')
+ tooltip.tooltip('hide')
+ })
})