diff options
Diffstat (limited to 'docs/dist/js/umd/tooltip.js')
-rw-r--r-- | docs/dist/js/umd/tooltip.js | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/docs/dist/js/umd/tooltip.js b/docs/dist/js/umd/tooltip.js index 8b75867a2a..96fefe749d 100644 --- a/docs/dist/js/umd/tooltip.js +++ b/docs/dist/js/umd/tooltip.js @@ -60,7 +60,7 @@ var DefaultType = { animation: 'boolean', template: 'string', - title: '(string|function)', + title: '(string|element|function)', trigger: 'string', delay: '(number|object)', html: 'boolean', @@ -346,17 +346,32 @@ }, { key: 'setContent', value: function setContent() { - var tip = this.getTipElement(); - var title = this.getTitle(); - var method = this.config.html ? 'html' : 'text'; + var $tip = $(this.getTipElement()); - $(tip).find(Selector.TOOLTIP_INNER)[method](title); + this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()); - $(tip).removeClass(ClassName.FADE).removeClass(ClassName.IN); + $tip.removeClass(ClassName.FADE).removeClass(ClassName.IN); this.cleanupTether(); } }, { + key: 'setElementContent', + value: function setElementContent($element, content) { + var html = this.config.html; + if (typeof content === 'object' && (content.nodeType || content.jquery)) { + // content is a DOM node or a jQuery + if (html) { + if (!$(content).parent().is($element)) { + $element.empty().append(content); + } + } else { + $element.text($(content).text()); + } + } else { + $element[html ? 'html' : 'text'](content); + } + } + }, { key: 'getTitle', value: function getTitle() { var title = this.element.getAttribute('data-original-title'); |