您可以通过selectionStart
来获取鼠标位置(以像素为单位)和插入符号位置。
但是在鼠标按下后如何直接在文本坐标中获得位置?
问题在于,在按下鼠标时,插入符号尚未移动,因此您可以找到先前的位置。
textarea.addEventListener('mousedown', event => {
console.log(textarea.selectionStart) // logs previous location
})
答案 0 :(得分:2)
请改用click
事件。
根据MDN,mousedown
事件在默认操作发生之前触发,而click
事件在默认操作(在这种情况下,移动插入符号位置)发生之后立即发生。 / p>
注意:这与
click
事件的不同之处在于,发生完全点击操作后会触发click
;也就是说,当指针停留在同一元素内时,按下并释放鼠标按钮。最初按下按钮后,将按下mousedown。
textarea.addEventListener('click', event => {
console.log(textarea.selectionStart) // logs previous location
})