我正在使用 JQuery 在我的 rails 应用程序中实现分页,并且遇到了一个问题,当我在浏览器中回击时,rails 有时无法呈现页面内容,而是将原始 Javascript 转储到我的浏览器窗口中。以下是我正在使用的快速浏览:
分页.js:
if (history && history.pushState) {
$(function () {
$('.pagination a').live("click", function () {
$.ajax({url: this.href, dataType: "script", cache: true});
history.pushState(null, document.title, this.href);
$("html, body").animate({ scrollTop: 0 }, 300);
return false;
});
$(window).bind("popstate", function() {
$.ajax({url: location.href, dataType: "script", cache: true});
});
});
}
在我看来,index.js.erb:
$("#products").html("<%= escape_javascript(render("products")) %>");
它有时会起作用,但通常在点击后退按钮时,JS 会被转储到我的浏览器窗口中,而不会被评估/渲染。它看起来像这样(在我的浏览器中):
$("#products").html("<table class=\"table table-striped\">\n<thead>\n<tr>\n<th>Products
...ETC。我不确定到底是什么失败了。有任何想法吗?