嘿,大家好,我正在尝试实现 AJAX 分页,并且我一直在研究 Railscasts 示例。
我在 application.js 中有这段代码
$(function() {
$("#entidades .pagination a").live("click",function(){
alert("ajax!");
$.getScript(this.href);
return false;
});
});
这是 View :
<div id="entidades"><%= render "page" %></div>
部分是一个标准,每个底部都有 will_paginate 链接。
我创建了index.js.erb
alert("ajax!");
$("#entidades").html("<%= escape_javascript(render("page")) %>");
每当我单击链接时,都不会引发警报消息。我无法让它工作。有人知道问题所在吗?
最佳答案
正如评论中提到的,问题可能与您调用 Ajax 调用的方式有关:
#app/assets/javascripts/application.js
$(document).on("click", "#entidades .pagination a", function(e){
e.preventDefault();
$.getScript(this.href);
alert("ajax");
});
您可能还想了解 Turbolinks
的 Angular 色在这。使用 JS 进行 Rails 开发的主要问题之一是应用程序的 JS 调用将被 Turbolinks 中断。
Turbolinks 基本上加载 <body>
新页面,留下<head>
完好无损的。这意味着如果您要使用类似 $(document).ready
的内容和$(function(){
,你必须将它们包裹在 Tuborlinks
中- 兼容调用(通常是 Turbolinks events
):
#app/assets/javascripts/application.js
var your_function = function() {
// calls here
};
$(document).on("page:load ready", your_function);
关于javascript - Ruby on Rails - AJAX 分页中的 JQuery 未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25640282/