Apakah ada cara untuk mengeksekusi kode yang sama untuk berbagai elemen pada halaman?
$('.class1').click(function() {
some_function();
});
$('.class2').click(function() {
some_function();
});
alih-alih melakukan sesuatu seperti:
$('.class1').$('.class2').click(function() {
some_function();
});
Terima kasih
.add()
bekerja dengan objek jquery juga$('.class1, .class2')
dan$('.class1').add('.class2')
? dalam hal apa kita harus menggunakan.add()
?Saya biasanya menggunakan
on
bukanclick
. Ini memungkinkan saya untuk menambahkan lebih banyak acara pendengar ke fungsi tertentu.Semoga ini bisa membantu!
sumber
Pastikan Anda meletakkan spasi seperti $ ('. Class1, space here.class2') atau tidak akan berfungsi.
sumber
Cukup gunakan
$('.myclass1, .myclass2, .myclass3')
untuk beberapa penyeleksi. Juga, Anda tidak perlu fungsi lambda untuk mengikat fungsi yang ada ke acara klik.sumber
Alternatif lain, dengan asumsi elemen Anda disimpan sebagai variabel (yang seringkali merupakan ide yang baik jika Anda mengaksesnya beberapa kali di badan fungsi):
Mengambil keuntungan dari chaining jQuery dan memungkinkan Anda untuk menggunakan referensi.
sumber
Jika Anda memiliki atau ingin mempertahankan elemen Anda sebagai variabel (objek jQuery), Anda juga dapat mengulanginya:
sumber
Tambahkan daftar kelas yang dipisahkan koma seperti ini:
sumber
Kami dapat kode seperti mengikuti juga, saya telah menggunakan acara blur di sini.
sumber
Saya memiliki tautan ke objek yang berisi banyak bidang input, yang harus ditangani oleh peristiwa yang sama. Jadi saya cukup menggunakan find () untuk mendapatkan semua objek di dalamnya, yang perlu memiliki acara
Jika objek Anda berada satu tingkat di bawah tautan anak-anak () alih-alih metode find () dapat digunakan.
sumber
Selain contoh dan jawaban yang sangat baik di atas, Anda juga dapat melakukan "menemukan" untuk dua elemen berbeda menggunakan kelas mereka. Sebagai contoh:
Ini akan menghasilkan "HelloWorld".
sumber