Как вы устанавливаете позицию курсора в текстовом поле с помощью jQuery? У меня есть текстовое поле с контентом, и я хочу, чтобы курсор пользователя располагался с определенным смещением, когда они фокусировались на поле. Код должен выглядеть примерно так:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
Как бы выглядела реализация этой функции setCursorPosition? Если у вас есть текстовое поле с содержимым abcdefg, этот вызов приведет к тому, что курсор будет расположен следующим образом: abcd ** | ** efg.
Java имеет аналогичную функцию, setCaretPosition. Существует ли аналогичный метод для javascript?
Обновление: я изменил код CMS для работы с jQuery следующим образом:
new function($) {
$.fn.setCursorPosition = function(pos) {
if (this.setSelectionRange) {
this.setSelectionRange(pos, pos);
} else if (this.createTextRange) {
var range = this.createTextRange();
range.collapse(true);
if(pos < 0) {
pos = $(this).val().length + pos;
}
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
}(jQuery);