From 482e78addc66b4dbf79718acbd69c55ba9029fb4 Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Mon, 31 Oct 2016 11:12:11 +0800 Subject: [PATCH] Popover: fix focus trigger, fixed #734 --- CHANGELOG.md | 6 ++++++ packages/popover/src/main.vue | 15 +++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53ff2401f..f61a44692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ## 更新日志 +### 1.0.0-rc.9 +*2016-11-xx* +- 新增 MessageBox 确定按钮自动获取焦点, #721 +- 修复 Popover focus 失效, #734 +- 修复 Clickoutside 报错, #729 + ### 1.0.0-rc.8 *2016-10-28* diff --git a/packages/popover/src/main.vue b/packages/popover/src/main.vue index 4488febe0..922e4fba1 100644 --- a/packages/popover/src/main.vue +++ b/packages/popover/src/main.vue @@ -68,21 +68,24 @@ export default { on(reference, 'mouseleave', this.handleMouseLeave); on(popper, 'mouseleave', this.handleMouseLeave); } else { + let found = false; + if ([].slice.call(reference.children).length) { const children = reference.childNodes; - - for (let i = 0; i < children.length; i++) { + const len = children.length; + for (let i = 0; i < len; i++) { if (children[i].nodeName === 'INPUT' || children[i].nodeName === 'TEXTAREA') { on(children[i], 'focus', () => { this.showPopper = true; }); on(children[i], 'blur', () => { this.showPopper = false; }); + found = true; break; } } - } else if ( - reference.nodeName === 'INPUT' || - reference.nodeName === 'TEXTAREA' - ) { + } + if (found) return; + if (reference.nodeName === 'INPUT' || + reference.nodeName === 'TEXTAREA') { on(reference, 'focus', () => { this.showPopper = true; }); on(reference, 'blur', () => { this.showPopper = false; }); } else {