Fix tooltip layout for menu items

This commit is contained in:
Julia Radzhabova 2019-03-07 14:16:57 +03:00
parent 85c47206bd
commit 2de3922437
2 changed files with 21 additions and 7 deletions

View file

@ -194,7 +194,22 @@ define([
el.attr('data-toggle', 'tooltip');
el.tooltip({
title : me.options.hint,
placement : me.options.hintAnchor||'cursor'
placement : me.options.hintAnchor||function(tip, element) {
var pos = this.getPosition(),
actualWidth = tip.offsetWidth,
actualHeight = tip.offsetHeight,
innerWidth = Common.Utils.innerWidth(),
innerHeight = Common.Utils.innerHeight();
var top = pos.top,
left = pos.left + pos.width + 2;
if (top + actualHeight > innerHeight) {
top = innerHeight - actualHeight - 2;
}
if (left + actualWidth > innerWidth) {
left = pos.left - actualWidth - 2;
}
$(tip).offset({top: top,left: left}).addClass('in');
}
});
}

View file

@ -127,15 +127,12 @@
if (this.hasContent() && this.enabled && !this.dontShow) {
if (!this.$element.is(":visible") && this.$element.closest('[role=menu]').length>0) return;
var $tip = this.tip();
var placement = typeof this.options.placement === 'function' ?
this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement;
if (this.options.arrow === false) $tip.addClass('arrow-free');
if (this.options.cls) $tip.addClass(this.options.cls);
var placementEx = /^([a-zA-Z]+)-?([a-zA-Z]*)$/.exec(placement);
if (!at && !placementEx[2].length) {
var placementEx = (typeof this.options.placement !== 'function') ? /^([a-zA-Z]+)-?([a-zA-Z]*)$/.exec(this.options.placement) : null;
if (!at && placementEx && !placementEx[2].length) {
_superclass.prototype.show.apply(this, arguments);
} else {
var e = $.Event('show.bs.tooltip');
@ -152,7 +149,9 @@
this.options.container ?
$tip.appendTo(this.options.container) : $tip.insertAfter(this.$element);
if (typeof at == 'object') {
if (typeof this.options.placement === 'function') {
this.options.placement.call(this, $tip[0], this.$element[0]);
} else if (typeof at == 'object') {
var tp = {top: at[1] + 15, left: at[0] + 18},
innerWidth = Common.Utils.innerWidth(),
innerHeight = Common.Utils.innerHeight();