onclick-Ereignis mit Javascript ändern
Wie kann ich ein onclick-Ereignis eines Links in folgender Form ändern:
<a href="Javascript:void(0);" style="font-size:x-large;" onclick="new Effect.SlideDown('bildwoche');" id='jan'>blablabla</a>
ich möchte jetzt bei einem Klick auf einen Button oder Link das das onclick-Ereignis in dieses geändert wird:
onclick="new Effect.SlideUp('bildwoche');"
Wenn ich das so mach:
function aendern() {
document.getElementById('jan').onclick = "new Effect.SlideUp('bildwoche')";
}
funktionierts nicht
Antwort schreiben
Antwort 1 von son_quatsch vom 09.07.2020, 14:44 Options
Richtig, dem onclick muss ja auch eine Funktion zugeordnet werden, statt nur eine Anweisung. Versuch es mit
function effekt() {
new Effect.SlideUp('bildwoche');
}
function aendern() {
document.getElementById('jan').onclick = effekt;
}
Antwort 2 von katy vom 09.07.2020, 21:39 OptionsLösung
Hallo Computerfreaki,
du hast dem Event ein String-Objekt zugeordnet. Damit kann der nichts anfangen. Wie son_quatsch schon ausführte musst du einem Event eine Funktion zuornen. Wenn du diese aber sonst nicht weiter brauchst genügt eine
anonyme Funktion:
function aendern() {
document.getElementById('jan').onclick = function () {
new Effect.SlideUp('bildwoche');
}
}
katy
Jetzt bräuchte ich noch ne Möglichkeit das Skript dynamischer zu machen.
Ich habe probiert diese zwei Funktionen in eine zu integrieren aber das hat nicht funktioniert.
Ich hab mir das so vorgestellt:
Die ID´s in den zwei Funktionen sollen über eine Funktion zu bestimmen sein.
Hier nochmal der jetzige Skript (die fett markierten Stellen sollten dann über eine Funktion veränderbar sein:
function aendere() {
document.getElementById('jan').onclick = function () {
new Effect.SlideUp('bildwoche');aendere_zurueck();
}
}
function aendere_zurueck() {
document.getElementById('jan').onclick = function() {
new Effect.SlideDown('bildwoche');aendere('jan');
}
}
Sorry, da unten in der letzten Zeile muss die Funktion mit keinem Parameter aufgerufen werden.
Antwort 5 von katy vom 10.07.2020, 18:25 Options
Hallo Computerfreaki,
function aendere() {
var janID=document.getElementById('jan');
if (janID.effekt && janID.effekt=="down") {
janID.onclick = function () {
new Effect.SlideUp('bildwoche');
}
janID.effekt=="up"
}
else {
janID.onclick = function() {
new Effect.SlideDown('bildwoche');
}
janID.effekt="down";
}
also eine einfache IF-Abfrage und entsprechende Zuordnung und den jeweiligen Zustand direkt im (hier übrigens eigentlich überflüssigem) Link speichern.
katy
Kann man jetzt eigentlich auch die ID´s in den Parametern der Funktion auswählen. Weil wenn ich das so mache muss ich für jedes Video oder Bild ein neuen Skript schreiben
Antwort 8 von katy vom 11.07.2020, 16:39 Options
und das verstehst du jetzt besser?
Ich farge mich gerade warum ich dir überhaupt noch antworte, in den letzten beiden Threads hast du dann jedesmal selbst eine Lösung präsentiert. Die eine ist Murks und bei dieser hier ist der Bezug zum Problem unklar.
katy