Herausforderung:
Kann jQuery verwendet werden, um ein Ereignis auszulösen, wenn eine CSS-Klasse vorhanden ist? hinzugefügt oder geändert? Ruft das Ändern einer CSS-Klasse automatisch das jQuery-Ereignis „change()“ auf?
Lösung:
jQuery bietet von Natur aus kein Ereignis für den Fall, dass sich eine CSS-Klasse ändert. Sie können jedoch Ihr eigenes Ereignis mithilfe eines Triggers auslösen, wenn Sie eine Klasse in Ihrem Skript ändern:
$(this).addClass('someClass'); $(mySelector).trigger('cssClassChanged');
Binden Sie dann Ihr benutzerdefiniertes Ereignis an einen Selektor, um die Aktionen anzugeben, die ausgeführt werden sollen, wenn sich die Klasse ändert:
$(otherSelector).bind('cssClassChanged', data, function(){ do stuff });
Das change()-Ereignis in jQuery ist für Eingabeelemente vorgesehen und wird nur ausgelöst, wenn der Fokus eine Eingabe mit geändertem Inhalt nach den Daten verlässt Eintrag.
Demonstrationscode:
$(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>
Das obige ist der detaillierte Inhalt vonWie kann ich in jQuery ein Ereignis auslösen, wenn sich eine CSS-Klasse ändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!