diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 6cf04f2d9..3524e05c1 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -218,7 +218,7 @@ onBeforeMount(() => { }); onMounted(async () => { - if ($props.isEditable) document.addEventListener('click', clickHandler); + if ($props.isEditable) document.addEventListener('mousedown', mousedownHandler); mode.value = quasar.platform.is.mobile && !$props.disableOption?.card ? CARD_MODE @@ -241,7 +241,7 @@ onMounted(async () => { }); onUnmounted(async () => { - if ($props.isEditable) document.removeEventListener('click', clickHandler); + if ($props.isEditable) document.removeEventListener('mousedown', mousedownHandler); }); watch( @@ -389,7 +389,7 @@ function hasEditableFormat(column) { if (isEditableColumn(column)) return 'editable-text'; } -const clickHandler = async (event) => { +const mousedownHandler = async (event) => { const clickedElement = event.target.closest('td'); const isDateElement = event.target.closest('.q-date'); const isTimeElement = event.target.closest('.q-time'); @@ -412,6 +412,7 @@ const clickHandler = async (event) => { } if (isEditableColumn(column)) { + event.preventDefault(); await renderInput(Number(rowIndex), colField, clickedElement); } };