From 41678094463d920562740ef380609d7af08294f6 Mon Sep 17 00:00:00 2001 From: Jikkai Xiao Date: Mon, 16 Jul 2018 17:09:38 +0800 Subject: [PATCH] Tree: fix keydown event in Tree (#12008) --- packages/tree/src/tree.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/tree/src/tree.vue b/packages/tree/src/tree.vue index 9280c445b..d8fb05646 100644 --- a/packages/tree/src/tree.vue +++ b/packages/tree/src/tree.vue @@ -289,15 +289,15 @@ this.treeItems[0] && this.treeItems[0].setAttribute('tabindex', 0); }, - handelKeydown(ev) { + handleKeydown(ev) { const currentItem = ev.target; if (currentItem.className.indexOf('el-tree-node') === -1) return; - ev.preventDefault(); const keyCode = ev.keyCode; this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]'); const currentIndex = this.treeItemArray.indexOf(currentItem); let nextIndex; if ([38, 40].indexOf(keyCode) > -1) { // up、down + ev.preventDefault(); if (keyCode === 38) { // up nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0; } else { @@ -306,10 +306,12 @@ this.treeItemArray[nextIndex].focus(); // 选中 } if ([37, 39].indexOf(keyCode) > -1) { // left、right 展开 + ev.preventDefault(); currentItem.click(); // 选中 } const hasInput = currentItem.querySelector('[type="checkbox"]'); if ([13, 32].indexOf(keyCode) > -1 && hasInput) { // space enter选中checkbox + ev.preventDefault(); hasInput.click(); } } @@ -476,7 +478,7 @@ mounted() { this.initTabIndex(); - this.$el.addEventListener('keydown', this.handelKeydown); + this.$el.addEventListener('keydown', this.handleKeydown); }, updated() {