我有这个div
<div class="right-content"> </div>
我在其中加载了我想通过AJAX显示的所有数据 我已经加载了一些html,其中有一个像
这样的链接<%= link_to job_applicants_path(j.id), :class => "applicants-link" do %>
<span class="badge"><%= cantSolic (j.id) %></span>
<% end %>
当我点击该链接时,我想删除右内容div的先前内容,并从job_applicants的视图中加载新的html,但是它会像新页面一样加载它。我怎么能这样做?
这是我正在使用的js:
$(".applicants-link").click(function(){
var link = $(this);
var path = link.attr("href");
if (path != null){
$.ajax({
url: path,
async: true,
success: function(result){
$(".right-content").html(result);
},
error: function(result){
$(".right-content").html ("<h4>No se ha podido cargar la información solicitada. Intentelo más tarde.</h4>")
}
})
return false;
}
});
答案 0 :(得分:0)
1,来自其他网页的数据会被加载到您将其称为<div class="right-content">
的数据中
'整页'。
2,您可以在该页面上放置<div>
给它一个id(要获取),然后发出一个简单的ajax请求来加载内容。
$('#currentdiv')。load('page.asp #div_to_load');
它会将#div_to_load
的内容从其他页面加载到当前页面的#currentdiv
。
答案 1 :(得分:0)
Rails有一种方法可以处理这个问题而无需编写click函数和$ ajax调用。更改链接,以便rails知道您要通过添加:remote => true
来发送ajax请求:
<%= link_to job_applicants_path(j.id), :class => "applicants-link", :remote => true do %>
<span class="badge"><%= cantSolic (j.id) %></span>
然后在你的控制器中(我假设job_applicants_path被路由到你的控制器中的&#34; show&#34;动作)响应ajax请求并执行特定于ajax请求的任何事情:
def show
#your logic for all requests types here
@some_variable = "abc123"
respond_to do |format|
format.html {}
format.js { #do any ajax specific stuff here }
end
end
然后Rails会发送文件show.js.erb
的内容作为JS执行,所以你可以在其中输入这样的东西:
$(".right-content").html("<%= escape_javascript(render(partial: 'name_of_your_partial_to_render', locals: { some_variable: @some_variable}))%>")