2011-01-31 7 views
23

CoffeeScriptで次の操作を行うにはどうすればよいですか?

$(function() { 
    $('input#username').keyup(function() { 
     var username = $('input#username').val(); 
     url = '/users/check_username/'; 
     params = { username : username }; 
     $.get(url, params, function(response){ markUsername(response); }, "json"); 
    }); 
    }) 

答えて

31

は、ここでそれを書くために別の少し凝縮方法です:

$ -> 
    $('input#username').keyup -> 
    username = $(this).val() 
    callback = (response) -> markerUsername response 
    $.get '/users/check_username/', {username}, callback, 'json' 

注括弧の欠如、そして速記「{ユーザー名}」オブジェクトリテラル。

+2

これはCoffeeScriptで書いた素晴らしい標準的な方法である。この例では、CoffeeScriptの機能をいくつか紹介しています。私はCoffeeScriptを使いこなすための素晴らしい言語を作成すると考えています。 – yfeldblum

+0

coffeescriptのお返事ありがとうございます。私はcoffeescriptをつかむことにおける私の困難は、私のjavascriptの知識の欠如に関するものだと思う。しかし、私が提案をすることができたら、あなたのcoffeescriptページで 'func_name = function(x)'で始まる不思議な見た目の関数定義を説明するのはどうですか?早いうちにそれを知っていれば、私にいくつかの問題を救ったでしょう – Tum

2

これは方法です:

$(-> 
    $('input#username').keyup(-> 
     username = $('input#username').val() 
     url = '/users/check_username/' 
     params = {username: username} 
     $.get(url, params, (response)-> 
      markerUsername(response) 
     , "json") 
    ) 
) 

これらの括弧の一部を省略することができますが、私の意見では、彼らは(少なくともこのような状況で)コードの流れを理解することを助けます。

私はここにcoffeescript http://jashkenas.github.com/coffee-script/( "coffeescriptを試してください")ボタンを押すことをお勧めします。言語はとても習得しやすいです。

+0

感謝:それはまでコンパイル

$.ajax '/yourUrlHere', data : key : 'value' success : (res, status, xhr) -> error : (xhr, status, err) -> complete : (xhr, status) -> 

。多分私はちょうど高密度か何か私の人生のために私は私がオンラインで見つけることができるすべての例を見た後でこれを把握できませんでした。 – Tum

+0

私はこれが受け入れられたものよりもよく見えると思うが、それはただの好みで誰が答えを投稿したのかを知っている間... – Quv

14

これは私がこれまでに作ってみた最高の一般的なパターンです:そんなに

$.ajax('/yourUrlHere', { 
    data: { 
    key: 'value' 
    }, 
    success: function(res, status, xhr) {}, 
    error: function(xhr, status, err) {}, 
    complete: function(xhr, status) {} 
}); 
関連する問題