Fix tooltip layout for menu items
This commit is contained in:
parent
85c47206bd
commit
2de3922437
|
@ -194,7 +194,22 @@ define([
|
||||||
el.attr('data-toggle', 'tooltip');
|
el.attr('data-toggle', 'tooltip');
|
||||||
el.tooltip({
|
el.tooltip({
|
||||||
title : me.options.hint,
|
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');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,15 +127,12 @@
|
||||||
if (this.hasContent() && this.enabled && !this.dontShow) {
|
if (this.hasContent() && this.enabled && !this.dontShow) {
|
||||||
if (!this.$element.is(":visible") && this.$element.closest('[role=menu]').length>0) return;
|
if (!this.$element.is(":visible") && this.$element.closest('[role=menu]').length>0) return;
|
||||||
var $tip = this.tip();
|
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.arrow === false) $tip.addClass('arrow-free');
|
||||||
if (this.options.cls) $tip.addClass(this.options.cls);
|
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);
|
_superclass.prototype.show.apply(this, arguments);
|
||||||
} else {
|
} else {
|
||||||
var e = $.Event('show.bs.tooltip');
|
var e = $.Event('show.bs.tooltip');
|
||||||
|
@ -152,7 +149,9 @@
|
||||||
this.options.container ?
|
this.options.container ?
|
||||||
$tip.appendTo(this.options.container) : $tip.insertAfter(this.$element);
|
$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},
|
var tp = {top: at[1] + 15, left: at[0] + 18},
|
||||||
innerWidth = Common.Utils.innerWidth(),
|
innerWidth = Common.Utils.innerWidth(),
|
||||||
innerHeight = Common.Utils.innerHeight();
|
innerHeight = Common.Utils.innerHeight();
|
||||||
|
|
Loading…
Reference in a new issue