如何在Rails中调用Ajax后执行JavaScript函数?

时间:2014-04-04 09:03:10

标签: javascript jquery ruby-on-rails ajax

我在rails中使用Ajax调用渲染了一些元素,但是我的另一个函数需要引用这些元素。我现在面临的问题是该函数无法获取这些元素,除非Ajax请求实际上已经完成。在ajax调用之后,是否有一些在Rails中运行javascript函数的方法?

例如:

fetch_cards.js.erb

var cards = $('.cards'); // only fetches previous cards, not the new ones

my_function( cards );

cards_controller.rb

def fetch_cards
    respond_to do |format|
        format.js
    end
end

1 个答案:

答案 0 :(得分:0)

我不确定你的意思,但是javascript让你能够监听ajax调用完成。由于您已经使用了jQuery,因此可以执行以下操作:

$.ajax('your/resources.json', 
    complete: function(jqXHR, status){
      // this will be executed once the server has completed your request
      my_function(cards);
    }
);

您可能希望使用更具体的回调函数(successerror)扩展此功能,您可以在jQuery API docs上找到更多信息。