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

  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • FOSDEM

    FOSDEM

    13 Ocak 2009