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

  • Khan Academy

    Khan Academy

    17 Kasım 2006
  • Photoshop Pro Help

    Photoshop Pr

    1 Ocak 2007
  • tinycammonitor

    tinycammonit

    14 Aralık 2010