2014-04-04 91 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

是的,這是一個馬虎的例子,我會更新它以備將來參考! –

相關問題