Belki de imleç konumuna ek olarak seçilen bir aralığa ihtiyacınız vardır. İşte basit bir işlev, jQuery'ye bile ihtiyacınız yok:
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)');
}
}
Diyelim ki bir girdi üzerinde değiştiğinde veya fare imleç konumunu hareket ettirdiğinde (bu örnekte jQuery kullanıyoruz .on()
) bir giriş çağırmak istiyorsunuz . Performansla ilgili nedenlerden dolayı, etkinlikler setTimeout()
içeri giriyorsa Alt Çizgi eklemek veya iyi bir fikir olabilir _debounce()
:
$('input[type="text"]').on('keyup mouseup mouseleave', function() {
caretPosition($(this));
});
İşte denemek istiyorsanız bir keman: https://jsfiddle.net/Dhaupin/91189tq7/