ändern div class onclick auf ein weiteres div-Element, und ändern Sie zurück auf den Körper auf
Lassen Sie mich definieren Sie das problem ein bisschen mehr:
habe ich
<div class="contact">
<div id="form"></div>
<div id="icon"></div>
</div>
möchte ich onclick auf #icon
zum ändern der Klasse .contact
zu .contactexpand
( oder Anhängen).
Dann möchte ich, dass die auf den Körper klicken Sie auf ändern, um die Klasse zurück, aber natürlich, das sollte nicht passieren, wenn Sie auf die neue Klasse .contactexpand
, und wenn möglich, das klicken auf das Symbol erneut, ändert sich die Klasse wieder zurück.
Ich habe versucht, zahlreiche Beispiele und Kombinationen, aber ich konnte einfach nicht das richtige Ergebnis und Verhalten.
- Fügen Sie einige html-mit Beschreibung
- verloren in der Formatierung; nicht mehr
- zeigen Sie uns Ihre versucht @JanBo
- verwenden
.toggleClass()
- Statt tatsächlich ersetzen Sie die Klasse, warum nicht fügen Sie einfach eine zweite Klasse "erweitert" auf, klicken Sie auf? Dies kann leicht erreicht werden mit .toggleClass wie erwähnt von Mahmoud über mir
Du musst angemeldet sein, um einen Kommentar abzugeben.
Prüfen: Beispiel
Wir gehen Sie Schritt für Schritt
Wollen Sie das
toggleClass()
Methode, dies zu erreichen. Ganz einfach:Stellen Sie sicher, dass
body
entferntcontactexpand
Klasse und fügtKontakt
. An dieser Stelle würde ich nur geben, das container-element einid
(oderclass
wenn Sie bevorzugen), nur um Dinge einfacher machen. Dann, was Sie tun, ist ziemlich einfach:Dies ist der Schritt, den die anderen Antworten übersehen, denke ich. Da überall auf den Sie klicken, Sie auch klicken Sie auf die
body
element, werden Sie immer auslösen des click-Ereignisses auf derbody
, damit das entfernen dercontactexpand
Klasse und dem hinzufügen dercontact
ein.Geben Sie
- Ereignis.stopPropagation()
. Diese Methode stellt sicher, dass die Ereignisse nicht Blase bis der DOM, und nicht den Auslöserbody
klicken.Beispiel
Können Sie eine Klasse hinzufügen, um das parent-element, wie im folgenden Codebeispiel.
Ich mag die jQuerys toggleClass Funktion etwa so:
Oder verwenden Sie addClass('className') und removerClass('className') wenn Sie möchten, apend und nicht Umschalten 🙂
Hier ist ein Beispiel: http://jsfiddle.net/aUUkL/
Sie können auch hinzufügen einer onclick-Ereignis des body der Seite, und verwenden Sie hasClass('className'), um zu sehen, ob oder ob nicht, schalten Sie die Klasse, wenn der Körper geklickt wird. Sie könnte so etwas wie das (Obwohl ich noch nicht getestet, bit!):
Können Sie dies tun,
Schauen Sie sich dieses jsfiddle
http://jsfiddle.net/kZkuH/2/