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

  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • modica89

    modica89

    24 HAZİRAN 2007
  • NPR

    NPR

    22 NİSAN 2006