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

  • DragsterMC Gaming

    DragsterMC G

    30 HAZİRAN 2013
  • Mega64

    Mega64

    24 ŞUBAT 2006
  • RogerBuckChrist

    RogerBuckChr

    9 Temmuz 2011