Como você define a posição do cursor em um campo de texto usando o jQuery? Eu tenho um campo de texto com conteúdo e quero que o cursor do usuário seja posicionado em um determinado deslocamento quando se concentrar no campo. O código deve ficar assim:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
Como seria a implementação dessa função setCursorPosition? Se você tivesse um campo de texto com o conteúdo abcdefg, essa chamada resultaria no posicionamento do cursor da seguinte maneira: abcd ** | ** efg.
Java tem uma função semelhante, setCaretPosition. Existe um método semelhante para javascript?
Atualização: modifiquei o código do CMS para funcionar com o jQuery da seguinte maneira:
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);
$(this).get(0).setSelectionRange)
? Você sabe que é exatamente o mesmo quethis.setSelectionRange
, apenas mais lento e mais difícil de ler, certo? O jQuery não está literalmente fazendo nada por você aqui.