Hi Ich habe eine DIV-Sektion, die nur ihren Titel anfänglich sichtbar hat. Was ich erreichen möchte ist, dass, wenn der Besucher irgendwo in den Bereich von toggle_section
klickt, der toggle_stuff
div zwischen sichtbar / versteckt umschaltet.
Allerdings, so wie es jetzt eingerichtet ist, wenn ich einen <a>
-Link innerhalb des toggle_section
habe, wird durch Klicken auf diesen Link auch das onclick-Ereignis ausgeführt.
Dann ist meine Frage, was wäre der beste Weg, um diese Art von Verhalten einzustellen?
Die einfachste Lösung besteht darin, einen zusätzlichen onclick-Handler zum Link hinzuzufügen in Ihrem DIV, der die Ereignisausbreitung stoppt:
%Vor% Im obigen Beispiel wird die Funktion Event.stop()
von Prototype verwendet, um einen browserübergreifenden Ereignisausbreitungsstopp zu ermöglichen.
Wenn Sie den inline onclick()
-Handler verwenden, durchläuft der (meist nicht alle) Browser das Ereignis zuerst in der Bubbling-Phase (was Sie wollen).
Eine gute Anleitung zum Verständnis der tatsächlichen Gründe für dieses Verhalten und die Unterschiede zwischen Ereigniserfassung und Ereignis-Sprudeln finden Sie unter dem ausgezeichneten Quirksmodus.
im Skript:
%Vor%activator link, gefolgt von content (kein Grund, der sonst nicht auf der Seite sein könnte):
%Vor%Ich habe das von Modal Fenster Javascript CSS-Overlay - musste für die suchen Quelle und war erfreut zu finden, dass es diese Seite war. :)
Nachdem ich meine erste Frage gestellt hatte, konnte ich es kaum erwarten, noch einmal darüber nachzudenken und es scheint, dass ich einen ganz einfachen Weg gefunden habe, dies zu erreichen.
Ich habe den onlick Effect.toggle
in eine separate Funktion wie folgt verschoben:
Ich nehme an, das funktioniert nur für A
-Tags und nicht für andere, die anklickbar sind.
Tags und Links javascript css prototypejs scriptaculous