Javascript 获取输入元素焦点上的克拉位置

Javascript 获取输入元素焦点上的克拉位置,javascript,jquery,html,Javascript,Jquery,Html,我想在用户在填充的输入框中单击时获取当前光标位置。但是使用this.selectionStart仅使用以下代码提供“0”: $('.exampleDiv').on('focus', 'input', function() { console.log(this.selectionStart); }); Html 我猜它给出的值是0,因为.on(focus)代码在输入框中设置光标位置之前运行 是否有其他可用于激活输入元素的事件 示例:输入框有值:“这是一个预填充值” 用户点击“

我想在用户在填充的输入框中单击时获取当前光标位置。但是使用
this.selectionStart仅使用以下代码提供“0”:

$('.exampleDiv').on('focus', 'input', function() {
        console.log(this.selectionStart);
});
Html


我猜它给出的值是0,因为
.on(focus)
代码在输入框中设置光标位置之前运行

是否有其他可用于激活输入元素的事件

示例:输入框有值:“这是一个预填充值”


用户点击“pre | filled”,所以我想得到光标出现后的字符数。有办法得到这个吗

你的逻辑是正确的。但是,事件侦听器中的
上下文不是您的输入元素。我建议将对元素的引用保存在变量中(如果您事先知道ID),或者通过
event.target
访问元素(在这种情况下,您还必须将
event
参数添加到事件侦听器中)

一个非常基本的工作示例(检查控制台的输出或以下内容):

var input=document.getElementById('foo');
函数caretController(){
var caretPos=input.selectionStart;
log('caret position:',caretPos);
}
input.addEventListener('focus',caretController)

请向我们提供html和css,以帮助您解决问题。将事件更改为“点击”克拉位置,您的答案显示为0。我通过复制脚本中的代码和“运行代码片段”进行了检查,您确定吗?我在自己的电脑(Chrome和Firefox)上测试过它,并请一位朋友(FF和Safari)测试过,没有问题。你能用失败的代码创建一个JSFIDLE吗?
<div class="exampleDiv" style="width=300px;"><input value="This is a prefilled value"></div>