Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 09.03.2018, 13:17
cloned cloned ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Ja, damit hat fast jeder Anfangs Probleme. Das ging auch mir einmal so. Hat man es einmal verstanden ist es "eh logisch", aber bis dahin ist es etwas verwirrend:

Code:
$(".e-open").click(function(){
//alles hier drinnen kennt js (noch) nicht
}); 
$(".offen").click(function(){
//alles hier drinnen kennt js (noch) nicht
});
das .on("click") oder einfach nur .click() wird auf alle Elemente gebunden, die "jetzt gerade" existieren. Wenn du "offen".click() aufrufst, dann exisitert das alles noch nicht. Du musst also den eventhandler erst dann zuweisen wenn die Elemente existieren.
Da musst du aber aufpassen, dass du die Events nur einmal (!) und nicht öfter zuweist.

Du hast hier nun ein paar Möglichkeiten:
Du kannst im "e-open" click den jeweiligen Status abspeichern und dann dementsprechend den Text ändern und ein- ausblenden und die Klasse nie ändern.
Dafür würden sich zB data- Attribute eignen.
Oder du arbeitest mit event delegation, indem du das click nur auf das übergeordnete Element zuweist und dann im eventhandler die Klasse des Ziels abfragst.
Ansonsten kannst du auch beide HTML Teile immer im HTML haben und dann mittels einer zB hidden-Klasse das anzeigen lösen. Dann hast du aber den Effekt nicht dabei, bzw ist das dann nicht wirklich einfach (für einen Anfänger) zum einbauen.
Mit Zitat antworten