将文本框插入符移动到光标

时间:2014-09-07 06:57:12

标签: javascript jquery

我有一个textarea,当我盘旋时,我希望插入符号跟随光标。这就像我每次移动鼠标时点击textarea一样。这是我目前的js:

$("textarea").on("mousemove", function() {
    $(this).trigger("click");
});

我不想移动鼠标,而是在textarea中移动插入符号。 Codepen link

<小时/> 的更新

jQuery Set Cursor Position in Text Area类似但我如何使用鼠标的坐标来设置使用此方法的插入位置。如果我收到X:120 Y:244,我如何使用此方法设置插入符号

1 个答案:

答案 0 :(得分:1)

有几个原因可能会导致您重新考虑实施此类功能。

<强> 1。性能 mouseover会在很短的时间内触发很多事件,您必须重新计算插入位置。在低端设备(如上网本或智能手机)上,这很快就会变得非常滞后。

<强> 2。可用性 对于笔记本电脑和上网本,很容易发生您不小心触摸触摸板,因此意外地将光标移动到一个非常烦人的全新位置。

第3。支持 请注意,大多数触摸式计算机(如平板电脑和智能手机)都无法使用您的功能。

<强> 4。使用 我想不出任何使用此功能可能有益的用例。你赢得的唯一一件就是少点击用户端。考虑用户已将光标移动到他想要编辑的特定位置。再按下一根手指根本不需要任何努力。


那就是说,如果你仍然因为任何原因决定去寻找它,你要做的就是得到textarea字段每一行的行高。使用单字体,其中每个字符具有相同的宽度。获取textarea字段的高度和宽度。当滚动条不在顶部时,获取textarea字段的隐藏部分。最后得到textarea中的光标位置。从所有数据中,您可以计算字符串的索引,然后使用您链接的jquery函数,其中两个参数都相同$("textarea").selectRange(pos, pos);