2010-03-29 18 views
5

Yerinde düzenleme için Jeditable kullanıyorum. Çalıştığım denetimlerin biri, select türüne sahip. Bir kullanıcı alanına tıkladığında, aşağıdaki select kontrolü oluşturulur:jQuery + Jeditable - seçim değiştiğinde algıla

<div id="status" class="editable_select"> 
    <form> 
     <select name="value"> 
      <option value="Active">Active</option> 
      <option value="Inactive">Inactive</option> 
     </select> 
     <button type="submit">Save</button> 
     <button type="cancel">Cancel</button> 
    </form> 
</div> 

Ne anlamaya çalışıyorum sahip olmadığı, özellikle de o select kontrolü değiştiğinde algılamak için jQuery kullanmak nasıl bir ID özniteliği.

Bu

Ben bugüne kadar ne olduğunu, ancak olayı tetiklenir almıyor: jQuery 1.4.2 için

$(document).ready(function() { 
    $('#status select').change(function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

GÜNCELLEME

Güncelleniyor Matt kullanarak birlikte sorunumu çözdü çözüm.

cevap

7

Muhtemelen bunun nedeni, alanın yüklendikten sonra sayfaya eklenmesinden (ve olay bağlamanızdan sonra) ulaştığını göreceksiniz. Bu ancak 1.7 beri on() yöntem olay işleyicileri bağlamak için tercih edilen yol olduğunu live

$(document).ready(function() { 
    $('#status select').live('change', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

Not kullanarak durum buysa

Hala değişim olaylarını yakalayabilir. Yukarıdakilerin karşılığı;

$(document).ready(function() { 
    $(document).on('change', '#status select', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 
+0

Çalıştığın için teşekkürler. Ancak, bu olay bir sebepten dolayı IE'de balonlanmıyor. Düşünceler? –

+0

jQuery bunu yapmalıdır. Hangi kodu kullanıyorsunuz çalışmıyor? – Matt

+0

@Matt: Sağladığınız kodu kullanıyorum - IE8 dışındaki diğer tarayıcılarda iyi çalışıyor. –

İlgili konular