SORU
13 Mayıs 2010, PERŞEMBE


Button değiştiğinde algılama

Nasıl button javascript kullanarak değiştirme olayı seziyorum?
Yazarken mevcuttur terk ettiğini tespit etmeye çalışıyorum.

Değiştiğinde olayını kullanarak denedim, ama bu odak dışında olduğunda sadece tekme gibi görünüyor.

CEVAP
25 Aralık 2012, Salı


Post-PC çağı işte 2012 ve biz hala bu gibi temel bir şey ile mücadele etmek zorunda. Bu olmalıçok basit.

Bu hayali yerine kadar, burada en iyi şekilde bunu yapmak için, tarayıcı çapraz:input onpropertychange olayları bir arada kullanınyani: gibi

var area = container.querySelector('textarea');
if (area.addEventListener) {
  area.addEventListener('input', function() {
    // event handling code for sane browsers
  }, false);
} else if (area.attachEvent) {
  area.attachEvent('onpropertychange', function() {
    // IE-specific event handling code
  });
}

* *19 onpropertychange bakar input olay IE8 dikkat (ayrıca IE6 ve 7, ama bazı hatalar vardır ile çalışır) alır.

input onpropertychange kullanmanın avantajı, bu yüzden gereksiz yere (Ctrl Shift tuşlarına basarak zaman gibi) ateş; onlar yokeğer button içeriğini değiştirmek nispeten pahalı bir işlem çalıştırmak istiyorsanız, bu gitmek için bir yoldur.

YANİ, her zaman bunu destekliyor yarım yamalak bir iş yok gibi: ne input ne onpropertychange karakter IE tetiklersilinmişbutton. Eğer ihtiyacınız tanıtıcı silme karakter YANİ, kullanın keypress (karşıt olarak kullanarak keyup / keydownçünkü, ateş sadece bir kez bile kullanıcı presler ve tutan bir tuşa basılı).

Kaynak: http://www.alistapart.com/articles/expanding-text-areas-made-elegant/

DÜZENLEME:Haklı olarak açıklamalarda belirttiği gibi bile yukarıdaki çözüm mükemmel değil gibi görünüyor: button özelliği yok addEventListener varlığıdeğilaklı başında bir tarayıcı ile çalıştığını ima; benzer şekilde attachEvent mal varlığı yokdeğilYANİ ima. Eğer kodunuzu gerçekten hava geçirmez olmasını istiyorsanız, bunu değiştirmeyi düşünmelisiniz. İşaretçiler Tim Down's comment bkz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • Caroline Saquet

    Caroline Saq

    1 EKİM 2011
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008