2013-02-14 64 views
0

我已經處理了與某個控制器中的動作相對應的ajax調用。做一個簡單的Ajax調用

我通常會在控制器的動作(姑且稱之爲「喜歡」的動作),並且使Ajax調用,我會做:

考慮,<%= link_to 'like', like_path, :remote => true %>,並在部分JS文件,像$('.some_class').html("<%= j render 'some_partial' %>");

然後,一個unobstrusive ajax調用將被作出。

這一次,我想要一個更簡單的ajax調用:當我點擊一個鏈接時,我想用另一個div替換一個div。但是,在我點擊鏈接之前,該功能已運行。

考慮,

$(function teacher_function(){ 
    $(.become_teacher).html("<%= j render 'become_teacher' %>"); 
}); 

<div class="become_teacher"> 
    change this div 
</div> 

<%= link_to_function "ajax call", "teacher_function()" %> 

和_become_teacher.html.erb,我有some message被放在become_teacher類股利。

這似乎是一個非常簡單的javascript問題,但我想知道在Rails應用程序中執行此操作的最傳統方式,因爲所有Rails文檔都會在控制器中進行與某個操作對應的ajax調用。

回答

1

我會用無意義的,合法的語法先啓動:

function teacher_function() { 
    $(".become_teacher").html("<%= j render 'become_teacher' %>"); 
} 

<div class="become_teacher"> 
    change this div 
</div> 

<%= link_to_function "ajax call", "teacher_function()" %> 

沒有阿賈克斯在這裏,雖然。

+0

謝謝!所以問題是我有一個美元關於功能的標誌。但你能解釋爲什麼這不是ajax?我沒有重新加載整個頁面,而是有效地重新加載整個頁面的div部分而不影響其餘部分。這不是阿賈克斯代表什麼? – 2013-02-14 05:41:22

+1

@Maximus因爲沒有什麼異步的,所以沒有請求,只是一個JavaScript函數和DOM操作。沒有重裝,哪一個請求。該功能因爲您告訴它而立即運行;作爲$的參數的函數意味着「在DOM準備就緒時運行」。 – 2013-02-14 05:46:27