online 1
gast (50)

/ Forum / Webseiten/HTML

Webseiten/HTMLWebseiten/HTML

Fragevon Computerfreaki vom 09.07.2020, 14:23 Options

Lösung

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

Lö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

Antwort 3 von Computerfreaki vom 10.07.2020, 17:23 Options

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');
}
}

Antwort 4 von Computerfreaki vom 10.07.2020, 17:25 Options

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

Antwort 6 von Computerfreaki vom 10.07.2020, 19:47 Options

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 7 von Computerfreaki vom 10.07.2020, 21:01 Options

Problem hat sich gelöst.
Hier ist die Antwort:
http://github.com/madrobby/scriptaculous/wikis/effect-toggle

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

Ähnliche Themen

Checkbox
Uesch  02.06.2007 - 230 Hits - 9 Antworten

Download per Javascript starten
_mpact  15.08.2007 - 103 Hits - 7 Antworten

Popup Fenster immer im Vordergrund
Manni55  12.01.2008 - 104 Hits - 29 Antworten

Java Script - Fenstergröße ändern
Computerfreaki  29.02.2008 - 73 Hits - 8 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026