2016-04-05 28 views
-1

Belgedeki bazı giriş öğelerine (metin, radyo, onay kutusu vb.) Sahibim. Bir değişiklik yapıldığında bunların her biri rengini değiştirmelidir. Benim girdi elemanlarının değerini değiştirdiğinizdeDeğiştirildiğinde rengi değiştir

$("document").on('click', 'change', 'select', function() { 
    $(this).addClass("changed") 
}); 

ya metin veya seçeneğini tıklatarak girerek, arka plan rengini değiştirmez:

Bu benim yaklaşımdır.

Here is a fiddle.

+4

__'.on (olaylar [, selektör] [, veri], işleyici) '__ – Rayon

cevap

2

Sen hataların bir çift var; document, belge nesnesini seçiciye sunduğunuz için tırnak içinde olmamalı ve olayları iki farklı parametrede değil, tek bir parametrede bir boşlukla ayırmalısınız. Bu deneyin:

$(document).on('click change', ':input', function() { 
    $(this).addClass("changed") 
}); 

fazla ayrıntı için jQuery API docs bakınız:

$(document).on('click change', 'select', function() { 
    $(this).addClass("changed") 
}); 

form kontrolünün her türlü hedeflemek istiyorsanız, :input seçicisini kullanın.

+0

Bu yalnızca giriş kutuları ile çalışır, ancak diğer giriş öğeleriyle çalışır. – user1170330

+0

@ user1170330, Diğer öğeleri ne zaman seçtiniz? '' Input '' seçeneğini kullanmak isterseniz .. – Rayon

+0

Eh, bu sadece 'select' elementlerini seçtiniz. Hem 'input' hem de 'select'i hedeflemek istiyorsanız, ikinci parametrede ': input' kullanın. –

0

Küçük hata. Olmalıdır:

$(function() { 
    $(document).on('click change', 'select, input', function() { 
//-^--------^---------^^^--------------^^^^^^^^^ 
    $(this).addClass("changed") 
    }); 
}); 

Ayrıca document hazır fonksiyonu içine sarın.

.on() sözdizimi şöyledir:

.on(events [, selector ] [, data ], handler) 

Fiddle: https://jsfiddle.net/mL823jws/

+1

' boşluk 'veya' virgül '? – Rayon

+0

@RayonDabre Er ... Seni almadım ama ikiden ziyade tek bir ip gibi verilmeli. Anlatmaya çalıştığım buydu. –

+0

Kankam hala kodunuzla çalışmıyor. Başka bir hatam mı var? – user1170330

İlgili konular