2011-11-07 61 views
0
jQuery(function($) { 
    // create a convenient toggleLoading function 
    var toggleLoading = function() { $("#loading").toggle() }; 

    $("#new_post") 
    .bind("ajax:loading", toggleLoading) 
    .bind("ajax:complete", toggleLoading) 
    .bind("ajax:success", function(event, data, status, xhr) { 
     $("#response").html(data); 
    }); 
}); 

这是我的js函数(或Simone Carletti's),我想改变它的CoffeeScript,我有最后两个回调的麻烦,虽然。如何编写的CoffeeScript这个javascript函数(AJAX回调)

我的CoffeeScript看起来像这样

jQuery -> 
    $("#new_post") 
    .bind("ajax:loading", toggleLoading) 
    .bind("ajax:complete", toggleLoading) 
    .bind("ajax:success", (event, data, status, xhr) -> 
     alert(data) 
    .bind("ajax:failure", (event, data, status, xhr) -> 
     alert(data) 

但我事先

回答

3

得到一个Error: unclosed INDENT on line 21

感谢这里的问题很简单,你有不匹配的括号。该行

.bind("ajax:success", (event, data, status, xhr) -> 
    alert(data) 

永不关闭.bind调用。更改您的代码为

jQuery -> 
    $("#new_post") 
    .bind("ajax:loading", toggleLoading) 
    .bind("ajax:complete", toggleLoading) 
    .bind("ajax:success", (event, data, status, xhr) -> 
     alert(data)) 
    .bind("ajax:failure", (event, data, status, xhr) -> 
     alert(data)) 

它会工作得很好。

+0

漂亮的显示删除是正确的,你确定我的咖啡标记的最后4行是正确的吗?我想知道我是否需要任何括号或其他什么... – tmaximini

+0

对不起,我假设了一个tab/spaces问题,但第二眼看来它是一个parens问题。我改变了我的答案。 –

+0

这是正确的...我可以发誓我尝试过之前,虽然... – tmaximini