diff --git a/dist/base.js b/dist/base.js index a338461ab..246b35bab 100644 --- a/dist/base.js +++ b/dist/base.js @@ -8469,18 +8469,30 @@ BI.Editor = BI.inherit(BI.Single, { } e.stopEvent(); }); - this.watermark.element.css({ - position: "absolute", - left: "3px", - right: "3px", - top: "0px", - bottom: "0px" + } + + var _items = []; + if (this.watermark) { + _items.push({ + el: this.watermark, + left: 3, + right: 3, + top: 0, + bottom: 0 }); } + _items.push({ + el: this.editor, + left: 0, + right: 0, + top: 0, + bottom: 0 + }); + var items = [{ el: { - type: "bi.default", - items: this.watermark ? [this.editor, this.watermark] : [this.editor] + type: "bi.absolute", + items: _items }, left: o.hgap + o.lgap, right: o.hgap + o.rgap, @@ -8515,8 +8527,11 @@ BI.Editor = BI.inherit(BI.Single, { this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) { self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments); }); - this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (v) { - self.watermark && self.watermark.invisible(); + this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (e) { + // tab键就不要隐藏了 + if (e.keyCode !== BI.KeyCode.TAB && self.watermark) { + self.watermark.invisible(); + } }); this.editor.on(BI.Input.EVENT_VALID, function () { @@ -9756,6 +9771,10 @@ BI.Input = BI.inherit(BI.Single, { "leading": true, "trailing": false }); + this._focusDebounce = BI.debounce(BI.bind(this._focus, this), BI.EVENT_RESPONSE_TIME, { + "leading": true, + "trailing": false + }); this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, { "leading": true, "trailing": false @@ -9764,7 +9783,7 @@ BI.Input = BI.inherit(BI.Single, { .keydown(function (e) { inputEventValid = false; ctrlKey = e.ctrlKey; - self.fireEvent(BI.Input.EVENT_QUICK_DOWN); + self.fireEvent(BI.Input.EVENT_QUICK_DOWN, arguments); }) .keyup(function (e) { if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) { @@ -9787,6 +9806,9 @@ BI.Input = BI.inherit(BI.Single, { .mousedown(function (e) { self.element.val(self.element.val()); }) + .focus(function (e) { // 可以不用冒泡 + self._focusDebounce(); + }) .focusout(function (e) { self._blurDebounce(); }); @@ -9834,7 +9856,6 @@ BI.Input = BI.inherit(BI.Single, { _click: function () { if (this._isEditing !== true) { - this._focus(); this.selectAll(); this.fireEvent(BI.Input.EVENT_CLICK); } @@ -9935,7 +9956,6 @@ BI.Input = BI.inherit(BI.Single, { } if (!this._isEditing === true) { this.element.focus(); - this._focus(); this.selectAll(); } }, diff --git a/src/base/single/editor/editor.js b/src/base/single/editor/editor.js index 14a7dc4e5..7941567eb 100644 --- a/src/base/single/editor/editor.js +++ b/src/base/single/editor/editor.js @@ -74,18 +74,30 @@ BI.Editor = BI.inherit(BI.Single, { } e.stopEvent(); }); - this.watermark.element.css({ - position: "absolute", - left: "3px", - right: "3px", - top: "0px", - bottom: "0px" + } + + var _items = []; + if (this.watermark) { + _items.push({ + el: this.watermark, + left: 3, + right: 3, + top: 0, + bottom: 0 }); } + _items.push({ + el: this.editor, + left: 0, + right: 0, + top: 0, + bottom: 0 + }); + var items = [{ el: { - type: "bi.default", - items: this.watermark ? [this.editor, this.watermark] : [this.editor] + type: "bi.absolute", + items: _items }, left: o.hgap + o.lgap, right: o.hgap + o.rgap, @@ -120,8 +132,11 @@ BI.Editor = BI.inherit(BI.Single, { this.editor.on(BI.Input.EVENT_KEY_DOWN, function (v) { self.fireEvent(BI.Editor.EVENT_KEY_DOWN, arguments); }); - this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (v) { - self.watermark && self.watermark.invisible(); + this.editor.on(BI.Input.EVENT_QUICK_DOWN, function (e) { + // tab键就不要隐藏了 + if (e.keyCode !== BI.KeyCode.TAB && self.watermark) { + self.watermark.invisible(); + } }); this.editor.on(BI.Input.EVENT_VALID, function () { diff --git a/src/base/single/input/input.js b/src/base/single/input/input.js index e3bc8367c..6a15ab788 100644 --- a/src/base/single/input/input.js +++ b/src/base/single/input/input.js @@ -29,6 +29,10 @@ BI.Input = BI.inherit(BI.Single, { "leading": true, "trailing": false }); + this._focusDebounce = BI.debounce(BI.bind(this._focus, this), BI.EVENT_RESPONSE_TIME, { + "leading": true, + "trailing": false + }); this._blurDebounce = BI.debounce(BI.bind(this._blur, this), BI.EVENT_RESPONSE_TIME, { "leading": true, "trailing": false @@ -37,7 +41,7 @@ BI.Input = BI.inherit(BI.Single, { .keydown(function (e) { inputEventValid = false; ctrlKey = e.ctrlKey; - self.fireEvent(BI.Input.EVENT_QUICK_DOWN); + self.fireEvent(BI.Input.EVENT_QUICK_DOWN, arguments); }) .keyup(function (e) { if (!(inputEventValid && e.keyCode === BI.KeyCode.ENTER)) { @@ -60,6 +64,9 @@ BI.Input = BI.inherit(BI.Single, { .mousedown(function (e) { self.element.val(self.element.val()); }) + .focus(function (e) { // 可以不用冒泡 + self._focusDebounce(); + }) .focusout(function (e) { self._blurDebounce(); }); @@ -107,7 +114,6 @@ BI.Input = BI.inherit(BI.Single, { _click: function () { if (this._isEditing !== true) { - this._focus(); this.selectAll(); this.fireEvent(BI.Input.EVENT_CLICK); } @@ -208,7 +214,6 @@ BI.Input = BI.inherit(BI.Single, { } if (!this._isEditing === true) { this.element.focus(); - this._focus(); this.selectAll(); } },