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

  • LimeFire

    LimeFire

    2 ŞUBAT 2012
  • stewmurray47

    stewmurray47

    1 Kasım 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011