From 45628ecbf328849dd283ab0d3c27a12cff1eb394 Mon Sep 17 00:00:00 2001 From: Leopoldthecoder Date: Thu, 15 Jun 2017 18:31:11 +0800 Subject: [PATCH] ClickOutside: fix 'Cannot read property target of undefined' --- src/utils/clickoutside.js | 4 +++- test/unit/specs/dropdown.spec.js | 2 +- test/unit/specs/form.spec.js | 2 +- test/unit/specs/menu.spec.js | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/utils/clickoutside.js b/src/utils/clickoutside.js index 5da0b7d35..8a4a0fbe8 100644 --- a/src/utils/clickoutside.js +++ b/src/utils/clickoutside.js @@ -22,8 +22,10 @@ let startClick; export default { bind(el, binding, vnode) { const id = nodeList.push(el) - 1; - const documentHandler = function(mouseup, mousedown) { + const documentHandler = function(mouseup = {}, mousedown = {}) { if (!vnode.context || + !mouseup.target || + !mousedown.target || el.contains(mouseup.target) || (vnode.context.popperElm && (vnode.context.popperElm.contains(mouseup.target) || diff --git a/test/unit/specs/dropdown.spec.js b/test/unit/specs/dropdown.spec.js index e79eb9df1..03f79f190 100644 --- a/test/unit/specs/dropdown.spec.js +++ b/test/unit/specs/dropdown.spec.js @@ -146,7 +146,7 @@ describe('Dropdown', () => { done(); }, 300); }, 300); - }); + }).timeout(3000); it('hide on click', done => { vm = createVue({ template: ` diff --git a/test/unit/specs/form.spec.js b/test/unit/specs/form.spec.js index 45479aa09..33ca96fac 100644 --- a/test/unit/specs/form.spec.js +++ b/test/unit/specs/form.spec.js @@ -357,7 +357,7 @@ describe('Form', () => { }, 100); }, 100); }); - }); + }).timeout(3000); it('datepicker', done => { vm = createVue({ template: ` diff --git a/test/unit/specs/menu.spec.js b/test/unit/specs/menu.spec.js index f3174ffc7..4a3bad141 100644 --- a/test/unit/specs/menu.spec.js +++ b/test/unit/specs/menu.spec.js @@ -293,7 +293,7 @@ describe('Menu', () => { done(); }, 1000); }, 500); - }); + }).timeout(3000); it('menu trigger click', done => { vm = createVue({ template: `