2014-04-04 60 views
0

我正在使用Rails中的Ajax调用渲染一些元素,但是我的另一个功能需要引用这些元素。我现在面临的问题是,除非Ajax请求已经真正完成,否则函数不能获取这些元素。 ajax调用之后在Rails中运行javascript函数吗?如何在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 

回答

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更多信息。

+0

感谢您的帮助!这几乎修复它,只是我删除了“网址”。另外“完整”缺少“}”。 :) – user3048402

+0

是的,这是一个马虎的例子,我会更新它以备将来参考! –

相关问题