-1

私はコーヒースクリプトを初めて使用します。これは私の最初のスクリプトであり、機能していません。

html
 head title='hello world'
  css:
   h1{
    color: blue;
    }
  coffee:
     number   = 42
     opposite = true
     saybye = () ->
      alert 'hello'+number
      ''        
body
  h1 
   |hello world
  input type="button" onclick="saybye()" value="sayhello"

scss:
 $blue: #3bbfce;

 h2{
  color: $blue;
 } 

それはsaybyeが見つからないことを示しており、私は常に返される表現で終わる必要があります。折り返し電話を止める方法はありますか?

4

1 に答える 1

3

Slimが何をするのかはわかりませんが、CoffeeScriptは通常、名前空間の汚染を避けるために関数にラップされます。したがって、CoffeeScriptはおそらく次のようなJavaScriptに変換されることになります。

(function() {
  var number, opposite, saybye;

  number = 42;

  opposite = true;

  saybye = function() {
    alert('hello' + number);
    return '';
  };
})();

その結果saybye、HTMLには表示されません。

2012年には実際に使用onclickするべきではなく、最新のAPIを介してイベントにバインドする必要があります。jQueryを使用している場合は、次のようにします。

coffee:
  number   = 42
  opposite = true
  saybye = () ->
    alert 'hello'+number
    ''  
  $ -> $('input[type=button]').click saybye

jQuery(または同様のもの)を使用していない場合はaddEventListener、生のDOMオブジェクトで使用するのは難しい方法です。または、それらを自分の中に入れて、windowスコープ保護をバイパスすることもできます。

coffee:
  window.number   = 42
  window.opposite = true
  window.saybye   = () ->
    alert 'hello' + number

何かを返す限り、それについて心配する必要はありません。意味のあるものは何でも返します。戻るundefinedことが理にかなっている場合もあれば、そうでない場合もあります。明らかな戻り値がない場合は、CoffeeScriptに必要な処理を実行させ、次のようにします。

saybye = () ->
  alert 'hello' + number

さらに興味深い問題に移ります。

于 2012-01-20T18:02:14.647 に答える