2012-03-01 8 views
1

かなり単純な「すべてを選択」機能を作成しようとしていますが、JavaScriptのエラーが発生しています。コードは前方かなりストレートなので、私はそれを投稿します:jQueryとCoffeeScriptを使用して 'これ'が正しく設定されていません

(function() { 
    $(function() { 
    var all_check_box; 
    all_check_box = '#tournament_league_127'; 
    return $(all_check_box).change(function() { 
     return $('.leagueCheckBox').each(function() { 
     return this.prop("checked", true); 
     }); 
    }); 
    }); 
}).call(this); 

このコードは、次のCoffeeScriptによって生成されました:

$ -> 
     all_check_box = '#tournament_league_127' 
     $(all_check_box).change -> 
       $('.leagueCheckBox').each -> 
         this.prop("checked", true) 

しかし、私は#のtournament_league_127をクリックしたときに、私は次の取得しますエラー:this.prop is not a function。私は何が間違っているのかは分かりません。どんな助けもありがとう。

+0

私は理解していません...「this」と「$(this)」の違いは何ですか? –

+0

@Erica: 'this'は、イベントハンドラがバインドされた要素です。 '$(this)'は 'this'(DOM要素)を引数としてjQueryを呼び出し、jQueryオブジェクトを返します。 –

+4

あなたはそれを短縮することができます。 '$( '。leagueCheckBox')。prop(" checked "、true)' –

答えて

4

それは$(this).prop ...する必要があり、構成要素ではないあなたが必要なので、jQueryオブジェクトを参照する(つまり.propが存在していなかったの前に、jQueryの1.6+と仮定した場合)。

+0

これは正しい答えでした。 – Max

+0

@マックス:ちょうど投稿されたコメントを見てください - 私は正しい答えです - それは問題を修正し、不要なコードを取り除くからです。 – bfavaretto

+0

それを指摘してくれてありがとう。私は他の人にそれを与えることができなかったので、私はあなたにそれを与えた、あなたの応答はすぐに私の問題を解決したものです。 – Max

5

this

return $(this).prop("checked", true); 
関連する問題