mirror of
https://github.com/tenrok/vue2-datepicker.git
synced 2026-06-24 18:00:38 +03:00
fix: compatible with mobile click events
This commit is contained in:
+2
-2
@@ -7,7 +7,7 @@
|
|||||||
disabled: disabled,
|
disabled: disabled,
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div v-if="!inline" class="mx-input-wrapper" @click="openPopup">
|
<div v-if="!inline" class="mx-input-wrapper" @mousedown="openPopup" @touchstart="openPopup">
|
||||||
<input
|
<input
|
||||||
ref="input"
|
ref="input"
|
||||||
v-bind="{ name: 'date', type: 'text', autocomplete: 'off', ...inputAttr }"
|
v-bind="{ name: 'date', type: 'text', autocomplete: 'off', ...inputAttr }"
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
@input="handleInputInput"
|
@input="handleInputInput"
|
||||||
@change="handleInputChange"
|
@change="handleInputChange"
|
||||||
/>
|
/>
|
||||||
<i v-if="showClearIcon" class="mx-icon-clear" @click.stop="handleClear">
|
<i v-if="showClearIcon" class="mx-icon-clear" @mousedown.stop="handleClear">
|
||||||
<slot name="icon-clear">
|
<slot name="icon-clear">
|
||||||
<icon-close></icon-close>
|
<icon-close></icon-close>
|
||||||
</slot>
|
</slot>
|
||||||
|
|||||||
+3
-2
@@ -42,8 +42,9 @@ export default {
|
|||||||
if (this.appendToBody) {
|
if (this.appendToBody) {
|
||||||
document.body.appendChild(this.$el);
|
document.body.appendChild(this.$el);
|
||||||
}
|
}
|
||||||
|
this._clickoutEvent = 'ontouchend' in document ? 'touchstart' : 'mousedown';
|
||||||
|
|
||||||
document.addEventListener('mousedown', this.handleClickOutside);
|
document.addEventListener(this._clickoutEvent, this.handleClickOutside);
|
||||||
|
|
||||||
// change the popup position when resize or scroll
|
// change the popup position when resize or scroll
|
||||||
const relativeElement = this.$parent.$el;
|
const relativeElement = this.$parent.$el;
|
||||||
@@ -60,7 +61,7 @@ export default {
|
|||||||
this.$el.parentNode.removeChild(this.$el);
|
this.$el.parentNode.removeChild(this.$el);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.removeEventListener('mousedown', this.handleClickOutside);
|
document.removeEventListener(this._clickoutEvent, this.handleClickOutside);
|
||||||
|
|
||||||
this._scrollParent.removeEventListener('scroll', this._displayPopup);
|
this._scrollParent.removeEventListener('scroll', this._displayPopup);
|
||||||
window.removeEventListener('resize', this._displayPopup);
|
window.removeEventListener('resize', this._displayPopup);
|
||||||
|
|||||||
Reference in New Issue
Block a user