pars: Layer: Beim Einblenden wirt autom. an Anfang gescrollt!!

Hallo an alle.
Folgendes Szenario:
Ich habe ganz unten auf meiner Seite einen Link, der beim onclick event einen Layer (ebenfalls unten) sichtbar macht. Alles klappt wie es soll, abgesehen von folgendem: Beim Klicken (Layer ist sichtbar!) scrollt der Browser an den Anfang der Seite, obwohl der Layer dadurch nicht mehr sichtbar ist.

So sieht mein Link aus:

<a id="myLink" href="#" onclick="showLayer('MyLayer');">MyLink</a>

Der ungewollte Effekt tritt durch die Selbstreferenz des Links ein.
Da ich CSS verwende, muss ich <a...> verwenden (wegen dem hover Effekt, welcher meines Wissens nach für <a> funktioniert).
Kann mir da jemand helfen?

Gruss
pars

  1. hi,

    So sieht mein Link aus:

    <a id="myLink" href="#" onclick="showLayer('MyLayer');">MyLink</a>

    Der ungewollte Effekt tritt durch die Selbstreferenz des Links ein.

    ja dann unterbinde diese doch!
    du hast doch sowieso keinen link, der irgendeine HTML-aktion auslösen würde - also ist <a> das falsche element. nutze onClick auf irgendeinem anderen, passenden element - beispielsweise ein <span>.

    Da ich CSS verwende, muss ich <a...> verwenden (wegen dem hover Effekt, welcher meines Wissens nach für <a> funktioniert).

    nein, :hover funktioniert auf so gut wie allen elementen - nur der IE ist immer noch zu blöd, um es für andere elemente außer <a> umzusetzen.

    möglichkeiten:
    onClick auf <span> o.ä. nutzen, :hover für gute browser, hovereffekt mit JS simulieren für den schlechten.
    oder einfach die "ausführung" des links unterbinden, in dem du aus dem onClick per return false zurückgibst:

    <a id="myLink" href="#" onclick="showLayer('MyLayer');return false;">MyLink</a>

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Danke.
      Gebau das habe ich gesucht (Ausführung des Links unterbinden).
      Vielen Dank nochmal.

      Gruss
      snz

  2. Hi,

    Da ich CSS verwende, muss ich <a...> verwenden (wegen dem hover Effekt, welcher meines Wissens nach für <a> funktioniert).

    Nein! Im Gegenteil: Wenn Du mit CSS einen Link vortäuscht, der aber gar keiner ist, verwirrst Du Besucher mit deaktiviertem Javascript nur. Es ist es viel sinnvoller für eine Javascriptfunktion, diese auch ausschließlich über Javascript kenntlich zu machen - je nach dem Einzelfall sollte das ereignisauslösende Element auch erst über Javascript sichtbar gemacht werden.

    freundliche Grüße
    Ingo