Jquery 如何排除Rails中js的故障?

Jquery 如何排除Rails中js的故障?,jquery,ruby-on-rails-3.1,firebug,unobtrusive-javascript,infinite-scroll,Jquery,Ruby On Rails 3.1,Firebug,Unobtrusive Javascript,Infinite Scroll,应该注意的是,我不太擅长使用Firebug,但我没有发现任何可以解释以下问题的错误 我有一个feed.js.erb文件,其中包含以下代码: var $foos = $('<%= escape_javascript(render(@foos)) %>'); $('#container').append($foos); $('#pagination_button a').attr('href', '<%= feed_path + '?page=' + @page %>');

应该注意的是,我不太擅长使用Firebug,但我没有发现任何可以解释以下问题的错误

我有一个
feed.js.erb
文件,其中包含以下代码:

var $foos = $('<%= escape_javascript(render(@foos)) %>');
$('#container').append($foos);
$('#pagination_button a').attr('href', '<%= feed_path + '?page=' + @page %>');
var$foos=$('');
$(“#容器”).append($foos);
$(“#分页按钮a”).attr('href',”;
当第二次进行此ajax调用时,它似乎会无声地失败。我在Firebug控制台中看到了相应的响应,但是,
$foos
没有被更改
,随后,
#容器
从未被附加

我的html页面只包含一个加载指示器,它在第一次调用时成功地替换了该指示器。第二个调用是从其他javascript()触发的

如果重要的话,我注意到第一个调用是使用自动生成的timestamp参数进行的。之后,我将替换目标url,您可以在我的
#分页按钮a
上看到这一点

如何在浏览器中调试


更新:我使用ERB将
$foos
作为一个动态变量($foos1…$foos2),并注意到这也不起作用。因此,即使在控制台的响应中可以看到新的
@foos
,我的javascript的第一行也不会被评估

事实证明,Rails并没有以JS的身份处理我的第二个请求。更重要的是,如果JS引发异常,它将转换为纯文本。还显示了如何调试ajax代码,有效地回答了我的两个问题。

使用firebug脚本面板在其中一行上放置断点如何?我找不到方法来这样做,因为该脚本位于http响应中。它是在html页面呈现之后由我的Rails控制器动态创建的。您没有尝试使用相同的元素id将添加到容器中两次,是吗?是的,在不同的调用中。它在ajax成功后附加一次。然后一个新的ajax请求无法追加它。如果在第二次调用中没有修改id,那么这就是问题所在。元素id在DOM中应该是唯一的,如果您尝试添加两个或多个具有相同id的元素,浏览器将以多种方式失败。因此,您需要在附加的每个元素上使用不同的id,或者确保在附加第二个元素之前显式从DOM中删除第一个元素。这两种方法都应该有效。