SORU
31 Ocak 2009, CUMARTESİ


jQuery Metin alanında İmleç Konumunu Ayarlamak

Nasıl bir metin alanı jQuery kullanarak imleç konumunu ayarlamak mı? İçeriği bir metin alanı var ve kullanıcılar, imleci belirli bir alanda odaklanmak zaman ofset yerleştirilmiş olmak istiyorum. Kod da bu gibi görünmelidir:

$('#input').focus(function() {
  $(this).setCursorPosition(4);
});

Bu setCursorPosition işlev uygulaması nasıl olurdu? Eğer içerik abcdefg ile bir metin alanı varsa, bu çağrı imleci aşağıdaki gibi konumlandırılmış neden a*|*efg.

Java benzer bir işlev, setCaretPosition vardır. Benzer bir yöntem javascript var mı?

Güncelleme: CMS kod aşağıdaki gibi jQuery ile çalışmak için değiştirdim

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);

CEVAP
8 Mayıs 2009, Cuma


Burada bir WordPress kullanmak bir çözüm:

$.fn.selectRange = function(start, end) {
    if(typeof end === 'undefined') {
        end = start;
    }
    return this.each(function() {
        if('selectionStart' in this) {
            this.selectionStart = start;
            this.selectionEnd = end;
        } else if(this.setSelectionRange) {
            this.setSelectionRange(start, end);
        } else if(this.createTextRange) {
            var range = this.createTextRange();
            range.collapse(true);
            range.moveEnd('character', end);
            range.moveStart('character', start);
            range.select();
        }
    });
};

Bu, yapabilirsin

$('#elem').selectRange(3,5); // select a range of text
$('#elem').selectRange(3); // set cursor position

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damian Winter

    Damian Winte

    27 ŞUBAT 2007
  • Phandroid

    Phandroid

    26 Ocak 2009
  • Sergio Fernandez

    Sergio Ferna

    1 EKİM 2009