Michael Schröpl: Helpfunktion

Beitrag lesen

Die Funktion soll so ausschauen, dass, wenn mann auf einen
Helpbutton klickt oder eine Checkbox aktiviert die funktion aufgerufen wird
und später, wenn man dann eine Grafik (Link zur gewöhnlichen seite) klickt,
nicht die gewöhnliche Seite aufgerufen wird sondern eine andere,
die einen Hilfetext anzeigt.

Was Du haben willst, das ist - nicht erschrecken - ein endlicher Zustandsautomat.
Deine Seite soll in zwei Zuständen existieren:
a) Es wurde zuletzt auf den Helpbutton geklickt.
b) Es wurde zuletzt auf irgendwas Anderes geklickt.

Du brauchst also zwei Dinge:
1. Jeder Mausklick muß einen Wert in eine Variable "zustand" schreiben. Die meisten Klicks den Wert "normal", der eine besondere Klick den Wert "help" - oder irgendwas in der Art.
2. Jeder Mausklick muß mit JavaScript-Code interpretiert werden, nicht mit HTML-eigenen Mitteln. Wobei die jeweilige JavaScript-Funktion als allererstes den Zustand abfragt und dann entweder das Eine oder das Andere tut. (Und am Ende den Zustand entsprechend setzen, siehe 1.)
3. Der Zustand muß natürlich auch initialisiert werden (als "normal", nehme ich an).

Fang mit *einem* Button an und probiere erst mal das Prinzip aus - wenn Deine Seite stark interaktiv ist, wird ziemlich viel Code zusammenkommen.
Möglicherweise wird es mengenmäßig übersichtlicher, wenn Du eine separate Funktion für das Help-System schreibst und dieser den Namen des angeklickten Objektes übergibst.
Alternativ kannst Du für jedes Objekt eine Funktion schreiben, die sowohl Aktion als auch Online-Hilfe enthält - letzteres wird etwas mehr Code erzeugen, ist aber vielleicht lesbarer.

ich hoff das war verständlich genug ausgedrückt.

Yep. (Recht so.)

Für den Benutzer wäre es übrigens hilfreich, wenn Du ihm bei jedem Zustandwechsel zusätzlich ein optisches Feedback gibst.
In Windows etc. würde man dazu die Mauszeigerform ändern, was nicht in allen Browsern zuverlässig geht; vielleicht kannst Du per DHTML irgendwo eine Art Statusfeld einblenden, welches diese Funktion übernimmt.