SORU
23 HAZİRAN 2010, ÇARŞAMBA


Engelli bir giriş olay

Görünüşe göre <input> devre dışı herhangi bir olay işlenmiyor

Bir şekilde bu sorun için çözüm var mı ?

<input type="text" disabled="disabled" name="test" value="test" />
$(':input').click(function () {
    $(this).removeAttr('disabled');
})

Burada, bunu sağlamak için girişi tıklayın ihtiyacım var. Ama eğer etkinleştirmek bilmiyorum eğer doğru değilse, giriş ilan edilmemelidir.

CEVAP
23 HAZİRAN 2010, ÇARŞAMBA


Devre dışı öğeler fare olayları ateş etmeyin. Çoğu tarayıcı, olay işleyicileri konteyner elemanları yerleştirilmiş olabilir DOM ağaca bir olay engelli eleman kaynaklanan yaymak. Ancak, Firefox bu davranış sergilemek değil, sadece engelli eleman tıkladığınızda hiç bir şey yapmaz.

Daha iyi bir çözüm düşünemiyorum ama, tam çapraz tarayıcı uyumluluğu için, engelli girişi önünde bir öğe yerleştirin ve bu öğe üzerinde tıklayın yakalayabilirsin. Burada ne demek istediğimi bir örnek:

<div style="display:inline-block; position:relative;">
  <input type="text" disabled />
  <div style="position:absolute; left:0; right:0; top:0; bottom:0;"></div>
</div>​

uy:

$("div > div").click(function (evt) {
    $(this).hide().prev("input[disabled]").prop("disabled", false).focus();
});​

Örnek: http://jsfiddle.net/RXqAm/170/ (attr yerine prop jQuery 1.7 kullanmak).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Official Clouds

    Official Clo

    1 HAZİRAN 2011
  • TeachMeComputer

    TeachMeCompu

    31 EKİM 2009
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011