Làm cách nào để bạn đặt vị trí con trỏ trong trường văn bản bằng jQuery? Tôi đã có một trường văn bản có nội dung và tôi muốn con trỏ người dùng được định vị ở một độ lệch nhất định khi họ tập trung vào trường. Mã sẽ trông giống như thế này:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
Việc triển khai hàm setC bổngPocation đó sẽ như thế nào? Nếu bạn có một trường văn bản với nội dung abcdefg, cuộc gọi này sẽ dẫn đến việc con trỏ được định vị như sau: abcd ** | ** efg.
Java có chức năng tương tự, setCaretPocation. Có một phương pháp tương tự tồn tại cho javascript?
Cập nhật: Tôi đã sửa đổi mã CMS để hoạt động với jQuery như sau:
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)
? Bạn có biết điều đó giống hệt nhưthis.setSelectionRange
, chỉ chậm hơn và khó đọc hơn không? jQuery không làm gì theo nghĩa đen cho bạn ở đây.