diff options
| author | Johann-S <[email protected]> | 2017-04-07 13:20:34 +0200 |
|---|---|---|
| committer | Johann-S <[email protected]> | 2017-05-14 11:41:19 +0200 |
| commit | b40b1bc396adb80944b887f72d0ae616277c852d (patch) | |
| tree | 87d170caace642d8f2b195ddad863d1d36902377 /js/src | |
| parent | 81e07ec05218d75d64454787449dcb870b5b66ec (diff) | |
| download | bootstrap-b40b1bc396adb80944b887f72d0ae616277c852d.tar.xz bootstrap-b40b1bc396adb80944b887f72d0ae616277c852d.zip | |
Add attachment classes
Diffstat (limited to 'js/src')
| -rw-r--r-- | js/src/popover.js | 14 | ||||
| -rw-r--r-- | js/src/tooltip.js | 16 |
2 files changed, 30 insertions, 0 deletions
diff --git a/js/src/popover.js b/js/src/popover.js index 02efe2b2e..f89d3d5c8 100644 --- a/js/src/popover.js +++ b/js/src/popover.js @@ -22,6 +22,8 @@ const Popover = (($) => { const DATA_KEY = 'bs.popover' const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] + const CLASS_PREFIX = 'bs-popover' + const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') const Default = $.extend({}, Tooltip.Default, { placement : 'right', @@ -107,6 +109,10 @@ const Popover = (($) => { return this.getTitle() || this._getContent() } + addAttachmentClass(attachment) { + $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`) + } + getTipElement() { return this.tip = this.tip || $(this.config.template)[0] } @@ -130,6 +136,14 @@ const Popover = (($) => { this.config.content) } + _cleanTipClass() { + const $tip = $(this.getTipElement()) + const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX) + if (tabClass !== null && tabClass.length > 0) { + $tip.removeClass(tabClass.join('')) + } + } + // static diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 505a8d492..fb4ff131c 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -33,6 +33,8 @@ const Tooltip = (($) => { const EVENT_KEY = `.${DATA_KEY}` const JQUERY_NO_CONFLICT = $.fn[NAME] const TRANSITION_DURATION = 150 + const CLASS_PREFIX = 'bs-tooltip' + const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') const Default = { animation : true, @@ -269,6 +271,7 @@ const Tooltip = (($) => { this.config.placement const attachment = this._getAttachment(placement) + this.addAttachmentClass(attachment) const container = this.config.container === false ? document.body : $(this.config.container) @@ -332,6 +335,7 @@ const Tooltip = (($) => { tip.parentNode.removeChild(tip) } + this._cleanTipClass() this.element.removeAttribute('aria-describedby') $(this.element).trigger(this.constructor.Event.HIDDEN) if (this._popper !== null) { @@ -383,6 +387,10 @@ const Tooltip = (($) => { return Boolean(this.getTitle()) } + addAttachmentClass(attachment) { + $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`) + } + getTipElement() { return this.tip = this.tip || $(this.config.template)[0] } @@ -624,6 +632,14 @@ const Tooltip = (($) => { return config } + _cleanTipClass() { + const $tip = $(this.getTipElement()) + const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX) + if (tabClass !== null && tabClass.length > 0) { + $tip.removeClass(tabClass.join('')) + } + } + // static |
