我试图单击一下后立即获取文本光标的位置down鼠标重新定位它。问题是selectionStart
and selectionEnd
不返回光标的最新位置,因为在单击之前不会存储“新”位置released。当您尝试使用鼠标重新定位插入符号时,代码片段会显示此问题。
这很奇怪,因为从技术上讲,只要单击鼠标,我就可以在“新”位置键入内容,但是selectionStart
仍然返回旧位置。如果光标位置可以明显改变而不需要释放点击,那么如何访问新位置而不必等待mouseup
?
(这似乎也是在按键后跟踪光标位置的问题)
const input = document.getElementById('myInput');
input.addEventListener('mousedown', showposition); // click
function showposition() {
document.getElementById("output").innerHTML += " " + input.selectionStart;
}
<input id="myInput">
<p id="output"></p>
Use the click
事件而不是mousedown
事件。这是因为,当 mousedown 事件被触发时,selectionStart
不会更新,这就是为什么您不断获取以前的值的原因。
另一方面,点击事件是以下的组合mouseup
+ mousedown
该事件捕获一次完整的鼠标单击并返回预期的光标位置值。
const input = document.getElementById('myInput');
input.addEventListener('click', showposition); // click
function showposition(event) {
document.getElementById("output").innerHTML += " " + event.target.selectionStart;
}
<input id="myInput">
<p id="output"></p>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)