diff --git a/docs/components/tooltips.md b/docs/components/tooltips.md
index b6dc451ec6..31fb2c1c7e 100644
--- a/docs/components/tooltips.md
+++ b/docs/components/tooltips.md
@@ -165,7 +165,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
container |
- string | false |
+ string | element | false |
false |
Appends the tooltip to a specific element. Example: container: 'body' . This option is particularly useful in that it allows you to position the tooltip in the flow of the document near the triggering element - which will prevent the tooltip from floating away from the triggering element during a window resize.
diff --git a/js/src/tooltip.js b/js/src/tooltip.js
index 822ae36525..94f77a2a4c 100644
--- a/js/src/tooltip.js
+++ b/js/src/tooltip.js
@@ -46,7 +46,8 @@ const Tooltip = (($) => {
selector : false,
placement : 'top',
offset : '0 0',
- constraints : []
+ constraints : [],
+ container : false
}
const DefaultType = {
@@ -59,7 +60,8 @@ const Tooltip = (($) => {
selector : '(string|boolean)',
placement : '(string|function)',
offset : 'string',
- constraints : 'array'
+ constraints : 'array',
+ container : '(string|element|boolean)'
}
const AttachmentMap = {
@@ -274,9 +276,11 @@ const Tooltip = (($) => {
const attachment = this._getAttachment(placement)
+ const container = this.config.container === false ? document.body : $(this.config.container)
+
$(tip)
.data(this.constructor.DATA_KEY, this)
- .appendTo(document.body)
+ .appendTo(container)
$(this.element).trigger(this.constructor.Event.INSERTED)
|