From b2437912f003c11acd780d3f67f117be57f6272f Mon Sep 17 00:00:00 2001 From: redhoodsu Date: Tue, 8 Oct 2019 10:06:18 +0800 Subject: [PATCH] fix(elements): select not working for desktop --- src/Elements/Select.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Elements/Select.js b/src/Elements/Select.js index 569dcc8..a7062f8 100644 --- a/src/Elements/Select.js +++ b/src/Elements/Select.js @@ -1,4 +1,4 @@ -import { Emitter, isErudaEl } from '../lib/util' +import { Emitter, isErudaEl, isMobile } from '../lib/util' export default class Select extends Emitter { constructor() { @@ -32,8 +32,13 @@ export default class Select extends Emitter { function addEvent(type, listener) { document.body.addEventListener(type, listener, true) } - addEvent('touchstart', this._startListener) - addEvent('touchmove', this._moveListener) + if (isMobile()) { + addEvent('touchstart', this._startListener) + addEvent('touchmove', this._moveListener) + } else { + addEvent('mousedown', this._startListener) + addEvent('mousemove', this._moveListener) + } addEvent('click', this._clickListener) return this @@ -42,8 +47,13 @@ export default class Select extends Emitter { function rmEvent(type, listener) { document.body.removeEventListener(type, listener, true) } - rmEvent('touchstart', this._startListener) - rmEvent('touchmove', this._moveListener) + if (isMobile()) { + rmEvent('touchstart', this._startListener) + rmEvent('touchmove', this._moveListener) + } else { + rmEvent('mousedown', this._startListener) + rmEvent('mousemove', this._moveListener) + } rmEvent('click', this._clickListener) return this