Ich habe vor kurzem eine Javascript Funktion gebracht um schnell CSS KLassen zu Tauschen. In jQuery gibt es dafür die Funktion „toggleClass“. Leider stand mir in dieser Situation das Framework nicht zur Verfügung also habe ich mir die Funktion kurzerhand selber geschrieben.
Das Problem bei der Sache ist das man nicht einfach den Attribut Classname ersetzen darf da das HTML-Element vielleicht noch andere Klassen besitzt. In meiner Funktion können entweder zwei oder eine CSS-Klasse übergeben werden.
Bei zwei werden sie, falls vorhanden, getauscht, wenn noch keine von beiden vorhanden ist, wird die erste angefügt.
Bei dem Fall das nur eine Klasse übergeben wurde, wird zuerst geguckt ob die diese schon gesetzt ist. Falls ja wird sie mit nichts ersetzt andernfalls wird sie angefügt. Meine Funtion müsste sich also genauso wie das jQuery Pendant verhalten.
/**
*
* Wechselt die CSS-Klasse eines übergebenen Elements
*
* @param HTMLElement Element dessen Klasse gewechselt wird
* @param cls1 Klasse die gesetzt oder weg gemacht wird
* @param cls2 Klasse mit der getauscht wird. Falls dieser Parameter
* nicht gesetzt ist wird cls1 durch nichts ersetzt
*/
function toggleClass(elm, cls1, cls2) {
if (!cls2) cls2 = "";
elm.ersetzeKlasse = function (haystack, needle) {
var re = new RegExp(haystack, "g");
this.className = this.className.replace(haystack, needle);
}
if (elm.className.indexOf(cls1) > -1) elm.ersetzeKlasse(cls1, cls2);
else if (elm.className.indexOf(cls2) > -1) elm.ersetzeKlasse(cls2, cls1);
else elm.className += " " + cls1;
}
n das umgehen kann und da ist mir folgende Idee gekommen. Ich habe einfach mein MySQL-Passwort im Homepagecenter geändert. Nicht in ein neues, ich hab einfach das alte wieder einegeben und gespeichert. Und siehe da, ich kann wieder weiter arbeiten. Die Meldung ist bei mir 3 mal aufgetaucht. Einmal beim installieren, dann beim einspielen der alten Datenbank und dann beim Übertragen der Daten. Mit diesen kleinen Kniff war das alles kein Problem mehr. 🙂




