From 0ded703f6bb7b0c60b1ec8e90592c845ca07d46e Mon Sep 17 00:00:00 2001 From: andyexeter Date: Thu, 15 Sep 2016 10:33:11 +0100 Subject: [PATCH] Implement container option for tooltips and popovers. --- docs/components/tooltips.md | 2 +- js/src/tooltip.js | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) 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)