2017-09-28 2 views
0
hinzu.

Ich möchte eine Klasse zu einem div-Element hinzufügen können, aber erst, nachdem eine Klasse zu einem anderen Element hinzugefügt wurde.jQuery warten Sie, bis die Klasse hinzugefügt wird, und fügen Sie dann die Klasse

Wenn die Klasse '.added' hinzugefügt wurde

<a class="lm-added-message"></a> 

genannt 'Show' eine neue Klasse a.add_to_cart_button hinzuzufügen.

Das Ergebnis:

<a class="added_to_cart_button added"></a> 

<a class="lm-added-message show"></a> 

ich zur Zeit mit dem folgenden, aber es funktioniert:

jQuery(document).on('DOMNodeInserted', function (e) { 
    if (e.target.className == 'added') { 
     jQuery(".lm-added-message").addClass("show"); 
    } 
}); 

Danke

+0

Also wer fügt die Klasse hinzu, wenn nicht Sie? – adeneo

+0

Außerdem wird 'DOMNodeInserted' seltsamerweise ausgelöst, wenn ein DOM-Knoten eingefügt und nicht nur geändert wird. Du suchst nach Mutationsbeobachtern, oder vielmehr, du solltest nach etwas ganz anderem suchen, da es nicht nötig ist, auf Klassenänderungen zu warten. – adeneo

+0

Die Klasse wird hinzugefügt, wenn ein Artikel einem Warenkorb hinzugefügt wird. Hier ist die Seite, auf der die Aktion ausgeführt wird: http://www.lindameredith.com/wp/serum/ Wenn Sie auf "Add to bag" klicken, wird die Klasse .added zu einer Schaltfläche hinzugefügt. An dieser Stelle möchte ich eine Bestätigungsmeldung auslösen, indem ich die Klasse .show einem versteckten div hinzufüge. Ich bin mir nicht sicher, der beste Weg, dies zu tun. –

Antwort

0

Wie Sie hier sehen können: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events, das Ereignis Sie suchen nach kann sein DOMAttrModified: https://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMAttrModified

Mutationsereignisse sind zwar veraltet, so ist es vorgeschlagen, sie mit MutationObserver ersetzen: zu https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

Sie müssen auch prüfen, ob classname enthält hinzugefügt, nicht ist gleich zu, weil Sie eine andere Klasse Dort.

+0

Dies wurde jetzt behoben. Vielen Dank. –

Verwandte Themen