RubyonRails-AJAX分页中的JQuery未运行

Ruby on Rails - JQuery in AJAX pagination not running

本文关键字:运行 JQuery 分页 RubyonRails-AJAX      更新时间:2023-09-26

嘿,伙计们,我正在尝试实现AJAX分页,我已经看过很多railscasts的例子了。

我在application.js 中有这个代码

$(function() {
  $("#entidades .pagination a").live("click",function(){
    alert("ajax!");
    $.getScript(this.href);
    return false;
  });
});

这是观点:

<div id="entidades"><%= render "page" %></div>

partial是一个标准,每个链接的底部都有will_page链接。

我创建了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在这方面的作用。使用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);