0

この .coffee ファイルを .js にコンパイルしようとしましたが、エラーが発生しました:

In projekt.coffee, Parse error on line 122: Unexpected '='

ここに特定の部分があります:

#line122 -># quotes = ["The people who were trying to make this world worse are not taking the day off. Why should I? <br> -Bob Marley", "Don't worry about a thing, every little thing is gonna be alright<br> -Bob Marley", "Better to die fighting for freedom then be a prisoner all the days of your life.<br> -Bob Marley", "Herb is the healing of a nation, alcohol is the destruction of mankind<br> -Bob Marley", "When you smoke the herb, it reveals you to yourself.<br> -Bob Marley", "My music fights against the system that teaches to live and die.<br> -Bob Marley"]
        quoteNumber = Math.floor(Math.random() * quotes.length) 
        $('#cytat').html '<p> #{quotes[quoteNumber]} <p>'.css 
            font-family : Finger Paint

ここにコード全体があります:

http://jsfiddle.net/BNMa7/

「=」は予期しないものであることが示されているため、何が起こっているのか本当にわかりませんが、配列を明確に定義しています。ヘルプ...

4

1 に答える 1

4

これには複数の問題があり、説明している構文エラーの前に対処する必要があります。

font-familyは有効なスタンドアロンキーではありません。正しくコンパイルするには、それを引用する必要があります。同じFinger Paintです-どうしたのかわかりません。

文字列補間は、一重引用符で囲まれた文字列では機能しません。#{quotes[quoteNumber]}そのインデックスの引用符で置き換える場合は、二重引用符を使用する必要があります。

これらを修正しても、演算子の優先順位にはまだ大きな問題があります。

$('#cytat').html "<p> #{quotes[quoteNumber]} <p>".css 
    'font-family': 'Finger Paint'

これは次と同等です。

$('#cytat').html("<p> #{quotes[quoteNumber]} <p>".css('font-family': 'Finger Paint'));

文字列にはメソッドがないため、これはおそらく.css()あなたが意図したことではありません。呼び出しの周りに親を追加.html()して、正しい意味にします。

$('#cytat').html("<p> #{quotes[quoteNumber]} <p>").css
    'font-family': 'Finger Paint'

さて、最後に、構文エラー。一見、これは完全に有効なコードのように見え、エラーメッセージはあまり役に立ちません...しかし、このコードには致命的な間違いがあります。見ますか?投稿したサンプルに問題はありません。これは、ファイルの残りの部分のコンテキストでのみ間違っています。それで、それは何ですか?

タブとスペースを混在させました。タブとスペースを混在させないでください。CoffeeScriptコンパイラは、明らかにエディタとは異なるタブ幅を使用しているため、異常になり、クレイジーなエラーメッセージが表示されます。

タブを(一定数の)スペースに自動的に変換するテキストエディタ、または少なくとも非表示の文字を表示できるテキストエディタの使用を検討してください。私はSublimeTextが好きですが、そこにはたくさんのオプションがあります。

于 2013-02-02T18:23:00.600 に答える