Rails 3.1应用程序中的Coffeescript每次都在页面加载时执行

时间:2013-01-13 19:05:47

标签: jquery ruby-on-rails coffeescript

我的coffeescript遇到了问题,一旦ajax调用完成(使用'best_in_place'),我正试图刷新一堆值,并以最整洁的方式完成我的所有代码在作为回调的一部分被调用的函数中。

但是,看起来rails想要在页面加载时调用此函数,而不是每次都回调一次,为什么会这样?

    jQuery ->
  $('.best_in_place').best_in_place().bind("ajax:success", Statement.update_transactions())

Statement =  
  update_transactions : () ->
    alert('running update');
    $('.category_field').each( ->
      transaction_id = $(this).attr('data-transaction-id')
      $(this).find('.loading-transaction').show();
      $(this).find('.category-detail').hide();
      $(this).load('/transaction/update_category/'+transaction_id, ->
        $(this).find('.loading-transaction').hide();
      );
    )

1 个答案:

答案 0 :(得分:1)

从Statement.update_transactions()

中删除括号

它们会立即调用该方法。所以只需使用:

$('.best_in_place').best_in_place().bind("ajax:success", Statement.update_transactions)