Mungkin Anda memerlukan rentang yang dipilih selain posisi kursor. Ini adalah fungsi sederhana, Anda bahkan tidak perlu jQuery:
function caretPosition(input) {
var start = input[0].selectionStart,
end = input[0].selectionEnd,
diff = end - start;
if (start >= 0 && start == end) {
// do cursor position actions, example:
console.log('Cursor Position: ' + start);
} else if (start >= 0) {
// do ranged select actions, example:
console.log('Cursor Position: ' + start + ' to ' + end + ' (' + diff + ' selected chars)');
}
}
Katakanlah Anda ingin menyebutnya pada input setiap kali ia berubah atau mouse memindahkan posisi kursor (dalam hal ini kami menggunakan jQuery .on()
). Untuk alasan kinerja, mungkin merupakan ide bagus untuk menambahkan setTimeout()
atau sesuatu seperti Menggarisbawahi _debounce()
jika ada acara:
$('input[type="text"]').on('keyup mouseup mouseleave', function() {
caretPosition($(this));
});
Berikut adalah biola jika Anda ingin mencobanya: https://jsfiddle.net/Dhaupin/91189tq7/