如何在coffeescript中编写这个javascript函数(ajax callbacks)

时间:2011-11-07 14:15:16

标签: jquery ruby-on-rails-3.1 coffeescript

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看起来像这样

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)

但我得到Error: unclosed INDENT on line 21

提前致谢

1 个答案:

答案 0 :(得分:3)

这里的问题只是你的括号不匹配。这条线

.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))

它会正常工作。