Saya tidak tahu bagaimana cara mendapatkan class
nilai dari elemen yang diklik.
Ketika saya menggunakan kode di bawah, saya mendapatkan "node-205" setiap kali.
jQuery:
.find('> ul')
.tabs(
{
selectedClass: 'active',
select: function (event, ui) {
//shows only the first element of list
$(this).children('li').attr('class');
},
cookie: { expires: 0 },
fx: fx
})
HTML:
<ul class="tabs">
<li class="node-205"></li>
<li class="node-150"></li>
<li class="node-160"></li>
</ul>
Jawaban:
Berikut adalah contoh jQuery cepat yang menambahkan acara klik untuk setiap tag "li", dan kemudian mengambil atribut kelas untuk elemen yang diklik. Semoga ini bisa membantu.
Sama, Anda tidak harus membungkus objek dalam jQuery:
Dan di browser yang lebih baru Anda bisa mendapatkan daftar lengkap nama kelas :
Anda dapat meniru
classList
di browser lama menggunakanmyClass.split(/\s+/);
sumber
sumber
Saya melihat pertanyaan ini jadi saya pikir saya mungkin akan mengembangkannya sedikit lagi. Ini adalah perluasan dari ide yang dimiliki @SteveFenton. Daripada mengikat
click
acara ke setiapli
elemen, akan lebih efisien untuk mendelegasikan acara dariul
bawah.Untuk jQuery 1.7 dan lebih tinggi
Dokumentasi:
.on()
Untuk jQuery 1.4.2 - 1.7
Dokumentasi:
.delegate()
Sebagai pilihan terakhir untuk jQuery 1.3 - 1.4
atau
Dokumentasi:
.live()
sumber
Ini harus melakukan trik:
Untuk info lebih lanjut tentang ui.tab, lihat http://jqueryui.com/demos/tabs/#Events
sumber
Semua solusi yang disediakan memaksa Anda untuk mengetahui elemen yang akan Anda klik sebelumnya . Jika Anda ingin mendapatkan kelas dari elemen apa pun yang diklik, Anda dapat menggunakan:
sumber
$(e.target)
bukan$('#' + e.target.id)
jQuery masih akan menangani kasus ini secara wajar.sumber