首页 > 解决方案 > 获取文本坐标中文本区域中的鼠标单击位置

问题描述

您可以获取以像素为单位的鼠标位置,也可以通过selectionStart.

但是,如何在鼠标按下后直接获取文本坐标中的位置?

问题是在鼠标按下时插入符号还没有移动,所以你得到了以前的位置。

textarea.addEventListener('mousedown', event => {
  console.log(textarea.selectionStart) // logs previous location
})

标签: javascripthtml

解决方案


请改用click事件。

根据MDNmousedown事件在默认操作发生之前触发,而click事件直接在默认操作(在这种情况下移动插入符号位置)发生之后发生。

注意:这与在完全点击动作发生后触发的click事件不同;click也就是说,当指针保持在同一元素内时,按下并释放鼠标按钮。mousedown 在最初按下按钮的那一刻被触发。

textarea.addEventListener('click', event => {
  console.log(textarea.selectionStart) // logs previous location
})

推荐阅读