Linkaufruf trotz onclick="...;return false;"
Thoralf Knuth
- javascript
Hallo,
um folgenden Code-Ausschnitt geht's:
<a href="#JavaScript"
onclick="js_fSH('123');return false;"
onmouseover="/*alert('in');*/js_fIH('123',2);return true;"
onmouseout="/*alert('out');*/js_fIH('123',1);return true;">
<small id="more123">mehr »»<!--»»--></small>
<small style="display:none;" id="less123"><!--««-->«« ausblenden</small>
</a>
<div id="div123"
style="border:1px solid #444;display:none;margin:5px auto auto 25px;padding:2px;background-color:#222;color:#fff;">
...
</div>
Warum geht der Mozilla beim Klicken von mehr/ausblenden trotzdem auf #JavaScript? Bin ich blind?
Gruß, Thoralf
Hi,
<a href="#JavaScript"
onclick="js_fSH('123');return false;"
Warum geht der Mozilla beim Klicken von mehr/ausblenden trotzdem auf #JavaScript?
vermutlich wird die Script-Ausführung wegen eines Fehlers abgebrochen.
Bin ich blind?
Das vermag ich nicht zu beurteilen.
Cheatah
Hallo,
vermutlich wird die Script-Ausführung wegen eines Fehlers abgebrochen.
Nein, denn die JavaScript-Konsole schweigt sich aus. Wenn ich Fehler drin hab, mault mich selbige an.
Bin ich blind?
Das vermag ich nicht zu beurteilen.
War durchaus rhetorisch gemeint. ;) Aber ich entnehme Deiner Antwort, dass zumindest im Code-Ausschnitt kein Grund für dieses Fehlverhalten zu sehen ist.
Gruß, Thoralf
Hi,
War durchaus rhetorisch gemeint. ;) Aber ich entnehme Deiner Antwort, dass zumindest im Code-Ausschnitt kein Grund für dieses Fehlverhalten zu sehen ist.
Aber der Code-Ausschnitt enthält auch nicht die aufgerufenen Funktionen...
cu,
Andreas
Hallo,
Aber der Code-Ausschnitt enthält auch nicht die aufgerufenen Funktionen...
function js_fSH( sUnId )
{
/* Schaltet die Anzeige des div's mit zusaetzlichen Infos an und aus und wechselt die Quelle der korrespondierenden Grafiken
Aufgerufen wird diese Funktion im onClick-Handler.
Uebergeben wird die UniqueID des div's, aktuell einfach ein Timestamp. Daraus werden dann die einzelnen IDs ermittelt.
(js_fSH = JavaScript_FunktionShowHide) */
var objImg; objImg = document.getElementById( 'img' + sUnId ); /* Die Grafik mit [+] & [-] */
var objMore; objMore = document.getElementById( 'more' + sUnId ); /* Text-Element "einblenden" */
var objLess; objLess = document.getElementById( 'less' + sUnId ); /* Text-Element "ausblenden" */
var objDiv; objDiv = document.getElementById( 'div' + sUnId ); /* Der div mit dem verborgenen Text. */
/* Ist der entscheidende div unsichtbar, schalten wir ihn ein, die Grafik auf minus und den Text auf "ausblenden".
Sonst schalten wir ihn aus, die Grafik auf plus und den Text auf einblenden.
Durch diese Reihenfolge ist es egal, ob der div-display-style auf 'block', 'inline' oder leer steht, 'none' ist einheitlich.
Siehe http://www.w3.org/TR/REC-CSS2/visuren.html#display-prop */
if( objDiv.style.display == 'none' )
{
with( objImg )
{
src = src.replace( '/plus', '/minus' ); /* Grafik von plus nach minus */
title =' Zusätzliche Informationen wieder ausblenden...'; alt = '[-]';
} /* with( objImg ) */
objDiv.style.display = ''; /* div-style-display zurueck auf default */
objMore.style.display = 'none'; /* 'mehr' ausblenden */
objLess.style.display = ''; /* 'ausblenden' wieder auf Standard */
} /* if( objDiv.style.display == 'none' ) */
else
{
with( objImg )
{
src = src.replace( '/minus', '/plus' ); /* Grafik von minus nach plus */
title = 'Zusätzliche Informationen anzeigen...'; alt = '[+]';
} /* with( objImg ) */
objDiv.style.display = 'none'; /* div-style-display auf none */
objMore.style.display = ''; /* 'mehr' wieder auf Standard */
objLess.style.display = 'none'; /* 'ausblenden' ausblenden */
} /* if( objDiv.style.display == 'none' ) ... else */
} /* function js_fSH( sImgId, sDivId ) */
Ich hab den Code weitestgehend reduziert gehabt, der Fehler blieb.
Gruß, Thoralf
Nachtrag: http://utworld.de/ und dort gleich die erste Neuigkeit der Link zu 'mehr'.
Gruß, Thoralf
Hi,
Nachtrag: http://utworld.de/ und dort gleich die erste Neuigkeit der Link zu 'mehr'.
hat exakt das gewünschte Verhalten.
Cheatah
Hi,
Nachtrag: http://utworld.de/ und dort gleich die erste Neuigkeit der Link zu 'mehr'.
Da wird mehr Text eingeblendet, der Link selbst wird zu "ausblenden".
Kann es sein, daß Dich irgendwie Dein Cache austrickst?
cu,
Andreas
Hallo,
Da wird mehr Text eingeblendet, der Link selbst wird zu "ausblenden".
Der Code funktioniert. Nur in meinem FF0.8 wird dann die Adresse zu ...#JavaScript, was ich nicht verstehe.
Im Opera7 ist es so, wie es soll. Im FireFox funktioniert der Code zwar, aber selbst nach Leeren des Caches steht dann oben statt http://utworld.gamesweb.com/ dann plötzlich http://utworld.gamesweb.com/#JavaScript-Link, wenn ich dann testweise einen existierenden Anker/ID nehme, springt er an der Stelle sogar. JavaScript ist aber an und ich wüßte auch nicht, wo ich konkret dieses Verhalten abgeschaltet haben könnte.
Gruß, Thoralf
hi,
<a href="#JavaScript"
onclick="js_fSH('123');return false;"
warum _benutzt_ du denn überhaupt einen link, wenn du lediglich onClick eine funktion ausführen willst?
onClick ist doch durchaus auch für andere elemente definiert.
gruss,
wahsaga
Hallo,
warum _benutzt_ du denn überhaupt einen link, wenn du lediglich onClick eine funktion ausführen willst?
Eigentlich wegen der Abwärtskompatibilität, aber das muss ich mal im Auge behalten und durchtesten, IE5 und Opera6 als kleinste Browser reichen eigentlich aus.
Gruß, Thoralf
hi,
Ich hab das nicht wirklich nachvollzogen, geschweige denn verstanden.
Kann jetzt blöd sein aber wie ist es mit:
onclick="js_fSH('123');void(0);" ?
mfg
karl