Add an update method to allow to update position for Tooltip/Popover/Dropdown manually

This commit is contained in:
Johann-S 2017-04-19 15:08:06 +02:00
parent fc8b85b626
commit e5a0471b0b
5 changed files with 29 additions and 2 deletions

View File

@ -568,6 +568,7 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
| Method | Description |
| --- | --- |
| `$().dropdown('toggle')` | Toggles the dropdown menu of a given navbar or tabbed navigation. |
| `$().dropdown('update')` | Updates the position of an element's dropdown. |
### Events

View File

@ -322,6 +322,12 @@ Toggles the ability for an element's popover to be shown or hidden.
{% highlight js %}$('#element').popover('toggleEnabled'){% endhighlight %}
#### `.popover('update')`
Updates the position of an element's popover.
{% highlight js %}$('#element').popover('update'){% endhighlight %}
### Events
<table class="table table-bordered table-striped table-responsive">

View File

@ -298,6 +298,12 @@ Toggles the ability for an element's tooltip to be shown or hidden.
{% highlight js %}$('#element').tooltip('toggleEnabled'){% endhighlight %}
#### `.tooltip('update')`
Updates the position of an element's tooltip.
{% highlight js %}$('#element').tooltip('update'){% endhighlight %}
### Events
<table class="table table-bordered table-striped table-responsive">

View File

@ -185,8 +185,14 @@ const Dropdown = (($) => {
if (this._popper !== null) {
this._popper.destroy()
}
this._popper = null
}
update() {
if (this._popper !== null) {
this._popper.scheduleUpdate()
}
}
// private

View File

@ -227,6 +227,9 @@ const Tooltip = (($) => {
this._timeout = null
this._hoverState = null
this._activeTrigger = null
if (this._popper !== null) {
this._popper.destroy()
}
this._popper = null
this.element = null
@ -385,6 +388,11 @@ const Tooltip = (($) => {
}
update() {
if (this._popper !== null) {
this._popper.scheduleUpdate()
}
}
// protected
@ -646,8 +654,8 @@ const Tooltip = (($) => {
}
_handlePopperPlacementChange(data) {
this._cleanTipClass()
this.addAttachmentClass(this._getAttachment(data.placement))
this._cleanTipClass()
this.addAttachmentClass(this._getAttachment(data.placement))
}
// static