2014-09-05 77 views
-1

我有一个视图。在这个视图中,我想与AJAX分成4个不同的东西。我有2个人在工作。当我添加第三个(与其他人做相同的方法)前2停止工作。要粘贴一些代码让你们明白。Ruby on Rails - js在js.erb文件上停止工作

为2个paginations使用AJAX工作的视图:

<div id="ofertas"><%= render "ofertas_ajax" %></div> 

这使它在普通的循环部分通过项的总汇和将分页链接。一切都好。

正在工作,另一个是这样的:

<div id="historico"><%= render "historico_ajax" %></div> 

此呈现的部分,正如在另一个的上面。

我对这些2的application.js:

$(document).on("click","#ofertas .pagination a",function(e){ 
    e.preventDefault(); 
    $.getScript(this.href); 
}); 

$(document).on("click","#historico .pagination a", function(e){ 
    e.preventDefault(); 
    $.getScript(this.href); 
}); 

home.js.erb,因为所有这些div都在home.html.erb视图

$("#ofertas").html("<%= escape_javascript(render("ofertas_ajax")) %>"); 

$("#historico").html("<%= escape_javascript(render("historico_ajax")) %>"); 

OK - 所以这个工作得很好。至少测试它,我没有看到任何问题,并且使用AJAX正确分页。

我加入这个div为第三分页:

<div id="candidaturass"><%= render "candidaturaspag" %></div> 

再次呈现一个正常部分与正常循环,正确的将分页链接

我说这application.js

$(document).on("click","#candidaturass .pagination a",function(e){ 
    e.preventDefault(); 
    $.getScript(this.href); 
}); 

再次与其他类似。当然,我在home.js.erb文件添加此:

$("#candidaturass").html("<%= escape_javascript(render("candidaturaspag")) %>"); 

现在所有的paginations不起作用。我添加这行后。不知何故,我觉得我的home.js.erb文件不应该是这样的:

$("#ofertas").html("<%= escape_javascript(render("ofertas_ajax")) %>"); 

$("#historico").html("<%= escape_javascript(render("historico_ajax")) %>"); 

$("#candidaturass").html("<%= escape_javascript(render("candidaturaspag")) %>"); 

但随后再次我真的不知道为什么它不工作。如果我的文件被正确编码。

有人可以帮忙吗?

+0

提示:如果您使用浏览器的开发人员工具,请转到网络选项卡,单击页面上的一个Ajax链接,然后复制网络选项卡中的响应并将其粘贴到控制台中,它应该会告诉您关于脚本导致的任何错误(从服务器检索的脚本不显示错误当jQuery'eval's他们)。我不确定为什么你对同一模板中的所有3个单独链接都有回应,但它们是不是应该位于3个不同的模板中(并且可能由3个不同的动作渲染?),否则每个链接都会执行完全一样的东西。 – Inkling 2014-09-05 12:34:02

+0

我刚刚得到500内部服务器错误 – Lokuzt 2014-09-16 08:39:19

+0

如果您收到500内部服务器错误,请查看您的日志文件。其中一个部分可能存在拼写错误或其他编码错误。 – Josh 2014-09-16 11:59:26

回答

1

试试这个......在js.erb中渲染时要小心......报价应采取照顾: -

尽量遵循这样的: -

##adding single quotes 
$("#ofertas").html("<%= escape_javascript(render('ofertas_ajax')) %>"); 

$("#historico").html("<%= escape_javascript(render('historico_ajax')) %>"); 

$("#candidaturass").html("<%= escape_javascript(render('candidaturaspag')) %>"); 

以上的谐音,如果他们是reqular谐音别人哟必须明确指定用户/ _partial_name或别的东西,只会工作,你想要