aboutsummaryrefslogtreecommitdiff
path: root/js/dist/tooltip.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/dist/tooltip.js')
-rw-r--r--js/dist/tooltip.js27
1 files changed, 21 insertions, 6 deletions
diff --git a/js/dist/tooltip.js b/js/dist/tooltip.js
index a1bd76873..ff4b66659 100644
--- a/js/dist/tooltip.js
+++ b/js/dist/tooltip.js
@@ -43,7 +43,7 @@ var Tooltip = (function ($) {
var DefaultType = {
animation: 'boolean',
template: 'string',
- title: '(string|function)',
+ title: '(string|element|function)',
trigger: 'string',
delay: '(number|object)',
html: 'boolean',
@@ -329,17 +329,32 @@ var Tooltip = (function ($) {
}, {
key: 'setContent',
value: function setContent() {
- var tip = this.getTipElement();
- var title = this.getTitle();
- var method = this.config.html ? 'innerHTML' : 'innerText';
+ var $tip = $(this.getTipElement());
- $(tip).find(Selector.TOOLTIP_INNER)[0][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');