Syntax-Problem mit Javascript
Sebastian Schimpf
- javascript
Hallo,
ich habe ein kleines Script in Benutzung, welches eine Ebene
per Klick einblenden, bzw. wieder ausblenden soll.
Das ganze funktioniert in allen von mir getesteten Browsern
ohne Probleme, bis auf eine Fehlermeldung in der JS-Konsole von Firefox:
Hier das Script:
// Expander für's Style-Menü
function expandCollapse() {
for (var i=0; i<expandCollapse.arguments.length; i++) {
var element = document.getElementById(expandCollapse.arguments[i]);
element.style.display = (element.style.display == "none") ? "block" : "none";
document.getElementById("reset-it").setFocus;
}
}
So sieht der Einsatz in Quelltext aus:
<div id="showit" class="nav">
<ul>
<li><a href="javascript:void(0);" onclick="expandCollapse('expand', 'showit');">Style-Menü</a></li>
</ul>
</div>
<div id="expand" style="display: none;" class="nav">
<ul>
<li><a href="javascript:void(0);" onclick="expandCollapse('expand', 'showit');">Style-Menü</a></li>
</ul>
</div>
Die Fehlermeldung kommt, wenn ich auf die Ebene klicke und der Expander aufpopt.
Fehler: missing ) after argument list
expandCollapse('expand', ','showit');
----------------------------^
Keine Ahnung was da schief läuft.
Hat jemand vielleicht einen Tipp, wie ich das Script sauber kriege?
Dann gibt es noch eine Schwierigkeit.
Wenn ich per Tabulator durch meine Site navigiere, bleibt der Focus auf der Ebene id="showit" hängen und ich kann die Tabulatortaste solange drücken wie ich will, es geht nicht weiter.
Das checke ich noch viel weniger!
Es wäre super, wenn mir jemand weiterhelfen kann!
Gruß,
Sebastian
Hallo Sebastian Schimpf,
also wenn das die Fehlermeldung ist:
Fehler: missing ) after argument list
expandCollapse('expand', ','showit');
liegt der Fehler darin, dass ein ' fehlt. Richtig wäre es so:
expandCollapse('expand','','showit');
Im von dir geposteten HTML-Code sehe ich den Fehler allerdings nicht - vielleicht hast du nicht genau den richtigen Teil gepostet ;-)
Gruss aus Luzern,
Daniel
Hallo Daniel,
danke für deine Antwort:
also wenn das die Fehlermeldung ist:
Fehler: missing ) after argument list
expandCollapse('expand', ','showit');liegt der Fehler darin, dass ein ' fehlt. Richtig wäre es so:
expandCollapse('expand','','showit');
Im von dir geposteten HTML-Code sehe ich den Fehler allerdings nicht - vielleicht hast du nicht genau den richtigen Teil gepostet ;-)
Ich habe kurz mal 'expand','','showit' anstatt 'expand', ,'showit'
eingefügt. Dann kam die Meldung Elemente has no Properties. Er hat also etwas nicht gefunden.
Dann habe ich folgendes probiert: 'expand','showit' <--
also einfach das Leerzeichen entfernt. Nun kommt keine Fehlermeldung mehr! Das ist schon mal gut.
Hast du vieleicht noch einen Tipp bezüglich des Tabulators?
Gruß,
Sebastian
hi,
Hast du vieleicht noch einen Tipp bezüglich des Tabulators?
das liegt eventuell daran, dass dein setzen des focus unsinn produziert. wozu soll das überhaupt gut sein?
gruß,
wahsaga
Hallo,
das setzen des Fokus hat tatsächlich Unsinn produziert!
Ich habe für meine Website ein Stylemenü entworfen,
teilweise aus fertigen Scripten zusammengebaut.
Nun funktioniert alles wunderbar, nur der Fokus verschwindet,
sobald ich mit der Tabulatortast auf das Menü springe.
Ich benutze das fontsize Script von efa (einfach-fuer-alle.de).
Irgendwie verträgt sich das scheinbar nicht mit meinem Script für das Einblenden des Menüs per Mausklick, denn wenn ich den Teil des Codes entferne, der die Buttons zur Änderung der Schriftgröße erzeugt, habe ich kein Problem mit dem Fokus.
Ich habe das Gefühl, dass ich mit der Komplexität der Script überfordert bin.
Tja, ... die Geister die ich rief! ;-)
Gruß,
Sebastian