javascript - Ruby on Rails - AJAX 分页中的 JQuery 未运行

标签 javascript jquery ruby-on-rails ruby ajax

嘿,大家好,我正在尝试实现 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/

相关文章:

用于隐藏和显示 div(产品过滤)的 jQuery 简单复选框

ruby-on-rails - 使用 docker 容器 (dev) 时的 Rails Controller 缓存

ruby-on-rails - Ruby 2.7 和 Rails 7 的 Docker 配置

javascript - DIV 听旋转一次然后什么都没有 jQuery

javascript - async/await——这就是它正在做的事情吗?

javascript - Node : Global variables across multiple files

javascript - 启用询问使用 javascript/jquery 保存下载文件

Javascript 旋转等待沙漏型的东西

javascript - 通过jQuery和页面加载函数加载CSS

ruby-on-rails - 缩短长号码以包括 K/M/B/T