Cabaran:
Bolehkah jQuery digunakan untuk mencetuskan acara apabila kelas CSS ditambah atau diubah suai? Adakah mengubah kelas CSS secara automatik menggunakan acara jQuery change()?
Penyelesaian:
jQuery sememangnya tidak menawarkan acara apabila kelas CSS berubah. Walau bagaimanapun, anda boleh mencetuskan acara anda sendiri menggunakan pencetus apabila mengubah kelas dalam skrip anda:
$(this).addClass('someClass'); $(mySelector).trigger('cssClassChanged');
Kemudian, ikat acara tersuai anda kepada pemilih untuk menentukan tindakan yang perlu diambil apabila kelas berubah:
$(otherSelector).bind('cssClassChanged', data, function(){ do stuff });
Peristiwa change() dalam jQuery dikhususkan untuk elemen input dan tercetus hanya apabila fokus meninggalkan input dengan kandungan yang diubah selepas data kemasukan.
Kod Demonstrasi:
$(function() { var button = $('.clickme'), box = $('.box'); button.on('click', function() { box.removeClass('box'); $(document).trigger('buttonClick'); }); $(document).on('buttonClick', function() { box.text('Clicked!'); }); });
.box { background-color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="box">Hi</div> <button class="clickme">Click me</button>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetuskan Peristiwa dalam jQuery Apabila Kelas CSS Berubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!