gpt4 book ai didi

javascript - 在 jQuery 中检测何时为 "cursor position inside input change"?

转载 作者:可可西里 更新时间:2023-11-01 01:31:30 24 4
gpt4 key购买 nike

我正在使用一个名为 jQuery TextRange 的插件获取光标在输入中的位置(在我的例子中是文本区域)并设置位置。

但现在我有一件 - 我认为 - 更难解决的事情。我想知道 jQuery 中是否存在“光标位置已更改”之类的事件。 我的意思是这样的:

$('#my-input').on('cursorchanged', function(e){
// My code goes here.
)};

我想知道光标何时在输入/文本区域内移动,无论是通过箭头键还是鼠标单击都无关紧要。我是 jQuery 新手,但我认为在 jQuery 上不存在或存在这样的事件?

最佳答案

不,没有像“光标位置改变”这样的事件。

但是如果你想知道光标位置是否改变了,你可以这样做:使用 jquery 1.7 测试,我在 Ie8 和 chrome 中测试

var last_position = 0;
$(document).ready(function () {
$("#my_input").bind("keydown click focus", function() {
console.log(cursor_changed(this));
});
});

当光标改变时,console.log 将返回。

function cursor_changed(element) {
var new_position = getCursorPosition(element);
if (new_position !== last_position) {
last_position = new_position;
return true;
}
return false;
}

function getCursorPosition(element) {
var el = $(element).get(0);
var pos = 0;
if ('selectionStart' in el) {
pos = el.selectionStart;
} else if ('selection' in document) {
el.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -el.value.length);
pos = Sel.text.length - SelLength;
}
return pos;
}

关于javascript - 在 jQuery 中检测何时为 "cursor position inside input change"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com