Heim > Web-Frontend > CSS-Tutorial > Wie kann ich Ereignisse basierend auf CSS-Klassenänderungen in jQuery auslösen?

Wie kann ich Ereignisse basierend auf CSS-Klassenänderungen in jQuery auslösen?

Linda Hamilton
Freigeben: 2024-12-26 11:18:22
Original
535 Leute haben es durchsucht

How Can I Trigger Events Based on CSS Class Changes in jQuery?

Ereignisse bei CSS-Klassenänderungen in jQuery auslösen

In jQuery kann es vorkommen, dass Sie ein Ereignis ausführen müssen, wenn eine CSS-Klasse innerhalb eines Elements hinzugefügt oder geändert wird . Es gibt jedoch kein inhärentes Ereignis, das bei einer CSS-Klassenänderung ausgelöst wird.

Lösung für benutzerdefinierte Ereignisse

Um dieses Problem zu beheben, können Sie mit der Funktion trigger() ein benutzerdefiniertes Ereignis aufrufen. Wenn Sie die Klasse mit addClass() ändern, lösen Sie das benutzerdefinierte Ereignis aus, das dann an bestimmte Elemente gebunden werden kann.

$(this).addClass('someClass');
$(mySelector).trigger('cssClassChanged');
Nach dem Login kopieren

In einem anderen Teil des Codes können Sie das benutzerdefinierte Ereignis an einen Selektor binden und definieren Sie die Aktionen, die ausgeführt werden sollen, wenn die Klassenänderung auftritt.

$(otherSelector).bind('cssClassChanged', data, function(){ do stuff });
Nach dem Login kopieren

Beispielimplementierung

Bedenken Sie den folgenden Code Snippet:

$(function() {
  var button = $('.clickme')
      , box = $('.box')
  ;
  
  button.on('click', function() { 
    box.removeClass('box');
    $(document).trigger('buttonClick');
  });
            
  $(document).on('buttonClick', function() {
    box.text('Clicked!');
  });
});
Nach dem Login kopieren
.box { background-color: red; }
Nach dem Login kopieren
<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>
Nach dem Login kopieren

In diesem Beispiel wird die Klasse „Box“ entfernt, wenn auf die Schaltfläche geklickt wird. Dies löst das benutzerdefinierte Ereignis „buttonClick“ aus, das den Text des Div mit der „Box“-Klasse in „Clicked!“ ändert.

Das obige ist der detaillierte Inhalt vonWie kann ich Ereignisse basierend auf CSS-Klassenänderungen in jQuery auslösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage