2013-02-14 44 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