Strange Fehlermeldung – SyntaxError: Unexpected token ;

Jan-Frederik Stieler

Monsterator
Moderator
Hallo,
ich hab ein etwas merkwürdiges Problem, und zwar bekomm ich beim Ausführen dieses jQuery-Codes
Javascript:
<script>
jQuery(window).load( function() {
   var headmidvox    =    jQuery('h4.midvox'),
        imgmidvox    =    jQuery(headmidvox).next('img'),
        spanmidvox    =    jQuery('span.midvox a'),
        headebook    =    jQuery('h4.ebook'),
        imgebook    =    jQuery(headebook).next('img'),
        spanebook    =    jQuery('span.ebook a');

        jQuery(headmidvox, headebook).css({'line-height': '19px'}).remove().prependTo(spanmidvox);
        jQuery(headmidvox).hover(function() {imgmidvox.attr("src", 'image2.jpg');},function() {imgmidvox.attr("src", '//www.blickinsbuch.de/button/aka.png');};);
        jQuery(headebook).hover(function() {imgmidvox.attr("src", 'image2.jpg');},function() {imgmidvox.attr("src", '//www.blickinsbuch.de/button/aka.png');};);
        jQuery(imgmidvox, imgebook).hover(function() {jQuery(this).attr("src", 'image2.jpg');},function() {jQuery(this).attr("src", '//www.blickinsbuch.de/button/aka.png');};);
});
</script>
bekomm ich in der Konsole immer die Meldung
SyntaxError: Unexpected token ;
Aufgerufen wird diese Meldung nach
Javascript:
spanebook    =    jQuery('span.ebook a');
Hat irgendwer eine Ahnung wie ich diese wegbekomme?
Ich habe schon versucht alle Leerzeichen und Umbrüche rauszunehmen. Dann taucht der Fehler nur an einer anderen Stelle auf.
Ich bin grad mit meinem Latein am Ende.

Grüße
 
Hallo,

JSLint gibt mir auf keine Fehler aus. Hast du vielleicht ein "komisches" Zeichen in deinem Code? Dies kannst du bspw. mit Notepad++ überprüfen.

Hast du schon probiert, den Code noch mehr zu isolieren, sodass er auf jsFiddle denselben Fehler reproduzieren lässt?
 
Hi,
Notepad++ kann ich leider nicht verwenden, OS X. Aber ich habe in meinem Editor die unsichtbaren Zeichen schon angeschaltet.
Leider ohne ungewöhnlichem Ergebnis.
hier habe ich ein jsBin eingerichtet: http://jsbin.com/kekug/2/edit
Dort taucht der Fehler in der Konsole unter Chrome auch auf, aber an einer anderen Stelle.

Grüße
 
Ok, ich habe den Fehler gefunden, nachdem ich jede Zeile des letzten Skriptblockes nacheinander auskommentiert habe.

Vorherige Codezeile:
Javascript:
jQuery(imgmidvox, imgebook).hover(function() {jQuery(this).attr("src", 'image2.jpg');},function() {jQuery(this).attr("src", '//www.blickinsbuch.de/button/aka.png');};);

Vorherige Codezeile - formatiert (mit jsFiddle):
Javascript:
jQuery(imgmidvox, imgebook).hover(function () {
    jQuery(this).attr("src", 'image2.jpg');
}, function () {
    jQuery(this).attr("src", '//www.blickinsbuch.de/button/aka.png');
};);
 ^

Durch die Formatierung wird der Fehler ersichtlich. Hier die Verbesserung:
Javascript:
jQuery(imgmidvox, imgebook).hover(function () {
    jQuery(this).attr("src", 'image2.jpg');
}, function () {
    jQuery(this).attr("src", '//www.blickinsbuch.de/button/aka.png');
});

Am besten niemals solche langen Zeilen programmieren ;)
 
Äh, Mist.
Vielen Dank für deine Mühe! Solche langen Zeilen schreibe ich normalerweise auch nicht.
Ich hab die nur so zusammengeschoben weils hier für mich wichtiger war auf einen Blick zu sehen ob ich alle Variablen verwendet habe.

Viele Grüße
 

Neue Beiträge

Zurück