Browse Source

feature: title在同一个dom上只绑定一次

es6
guy 2 years ago
parent
commit
96ef74fed3
  1. 19
      src/base/single/0.single.js
  2. 6
      src/core/4.widget.js

19
src/base/single/0.single.js

@ -67,6 +67,10 @@ BI.Single = BI.inherit(BI.Widget, {
self.setValue(newValue);
}) : o.value;
BI.Single.superclass._init.apply(this, arguments);
},
_mounted: function () {
var o = this.options;
if (o.enableHover || BI.isKey(o.title) || BI.isKey(o.warningTitle)
|| BI.isFunction(o.title) || BI.isFunction(o.warningTitle)) {
this.enableHover({
@ -91,7 +95,7 @@ BI.Single = BI.inherit(BI.Widget, {
opt || (opt = {});
var self = this;
if (!this._hoverBinded) {
this.element.on("mouseenter.title" + this.getName(), function (e) {
this.element.unbind("mouseenter.title").on("mouseenter.title", function (e) {
self._e = e;
if (self.getTipType() === "warning" || (BI.isKey(self.getWarningTitle()) && !self.isEnabled())) {
delayingTooltips = self.getName();
@ -109,7 +113,7 @@ BI.Single = BI.inherit(BI.Widget, {
}, 500);
}
});
this.element.on("mousemove.title" + this.getName(), function (e) {
this.element.unbind("mousemove.title").on("mousemove.title", function (e) {
self._e = e;
if (BI.isNotNull(self.showTimeout)) {
clearTimeout(self.showTimeout);
@ -138,7 +142,7 @@ BI.Single = BI.inherit(BI.Widget, {
}
}, 500);
});
this.element.on("mouseleave.title" + this.getName(), function (e) {
this.element.unbind("mouseleave.title").on("mouseleave.title", function (e) {
self._e = null;
self._clearTimeOut();
self._hideTooltip();
@ -151,9 +155,9 @@ BI.Single = BI.inherit(BI.Widget, {
// 取消hover事件
this._clearTimeOut();
this._hideTooltip();
this.element.unbind("mouseenter.title" + this.getName())
.unbind("mousemove.title" + this.getName())
.unbind("mouseleave.title" + this.getName());
this.element.unbind("mouseenter.title")
.unbind("mousemove.title")
.unbind("mouseleave.title");
this._hoverBinded = false;
},
@ -217,8 +221,7 @@ BI.Single = BI.inherit(BI.Widget, {
return this.options.value;
},
__d: function () {
BI.Single.superclass.__d.call(this);
_destroyed: function () {
if (BI.isNotNull(this.showTimeout)) {
clearTimeout(this.showTimeout);
this.showTimeout = null;

6
src/core/4.widget.js

@ -97,6 +97,8 @@
beforeMount: null,
mounted: null,
// 不想重写mounted时用
_mounted: null,
shouldUpdate: null,
@ -109,6 +111,8 @@
beforeDestroy: null,
destroyed: null,
// 不想重写destroyed时用
_destroyed: null,
_init: function () {
BI.Widget.superclass._init.apply(this, arguments);
@ -429,6 +433,7 @@
child.__afterMount && child.__afterMount(lifeHook, predicate);
}
if (lifeHook !== false && !this.__async) {
callLifeHook(this, "_mounted");
callLifeHook(this, "mounted");
this.fireEvent(BI.Events.MOUNT);
}
@ -736,6 +741,7 @@
this.__d();
this._parent = null;
this._isMounted = false;
callLifeHook(this, "_destroyed");
callLifeHook(this, "destroyed");
this.destroyed = null;
this._isDestroyed = true;

Loading…
Cancel
Save