2012-06-02 16 views
12

Ajax kullanarak bir form yüklediğim bir JQuery Mobile kabuk sayfam var. Formda bağlanmam gereken bazı onay kutuları var.Jquery document.on(), Ajax aracılığıyla çekilen öğelere nasıl kullanılır?

İşin garibi, o kadar gibi butona doğrudan dinleyici ayarı işe alabilirsiniz:

$('input[name="ohneiln"]').on('change', function() { 
    alert("hello"); 
    }); 

Ama dinleyici asla $(document) için dinleyici ayarlayın ve checkbox yetki de çalışıyorum ne zaman yangınlar:

$(document).on('change', 'input[name="ohneiln"]', function() { 
    alert("hello"); 
}); 

Soru: lo olmak "dinamik" unsurları için bağlayıcı bir etkinlik ayarlamak için doğru yolu nedir
$(document).on() kullanarak Ajax aracılığıyla eklendi? Bu change olayları için mümkün mü, yoksa neden sorunlara koşuyorum?

Yardımlarınız için teşekkürler!

+1

Kişisel ikinci sözdizimi iyi görünüyor ve dinamik elementler için çalışmalıdır için dokümanlar okuyun, sorun belki başka bir yerde olduğunu. –

+1

iyi çalışıyor http://jsfiddle.net/7rDDA/ – Esailija

+0

@Esailija - ancak sayfa yüklendiğinde girişiniz var. Kullanıcı, bazı şeyler – frequent

cevap

11

.on() yönteminin yolu, nasıl kullandığınıza bağlı olarak değişir. İlk örneğinizde .on() yöntemi bind'a benzer davranır ve yalnızca önceden var olan öğeler üzerinde çalışır.

İkinci örnek, birçok şekilde .live() veya delegate() gibi davranır. Ve sonradan eklenen öğeler için çalışacaktır.

ayrıntılı bir açıklama http://api.jquery.com/on/

+0

ile herhangi bir fark yaratmıyoruz Bağlantı ve açıklama için teşekkürler. Sanırım ilk versiyona bağlı kalıyorum. – frequent

+0

Sanırım ilk ve ikinci örneği karıştırdınız. 1. "direk", 2. "delegelenmiş" dir. –

+0

Sanırım sağın teşekkür roketi :) – codaniel