ROR和JS调试

时间:2011-09-13 19:19:46

标签: javascript ruby-on-rails

我刚刚阅读了一些关于在轨道上使用ajax的教程。下面你可以看到从其中一个中提取的JS脚本,并进行了一些修改,我希望这些修改会导致一些错误并在某处写一些文本。 (公共/ Javascript角/ application.js中)

$('.submittable').live('change', function() {
  $(this).parents('form:first').submit();
  fdafdasfewa
  document.write("Welcome to my world!!!");
  echo "------------------";
});

事实上,脚本仍然没有副作用。

document.write和echo放在哪里文本?

当我甚至看不到它的输出时,如何调试这样的脚本?好吧有时候我甚至无法确定是否跑了。

2 个答案:

答案 0 :(得分:1)

尝试发出提醒以确保您的代码已到达

$('.submittable').live('change', function() {
  $(this).parents('form:first').submit();
  alert('reached this point');
  ...

另外,使用Firebug或Chrome的开发工具。在Mac上的Chrome中,快捷方式是命令alt-i以显示开发工具,然后单击“控制台”以显示...控制台。

在控制台中,您可以输入

$('.submittable')

确保你的js有一个要连接的dom元素。如果$('.submittable')没有返回任何内容,那么就没有选择dom元素。您甚至可以在开发工具中设置断点并逐步执行它们。要创建断点,请执行

$('.submittable').live('change', function() {
  $(this).parents('form:first').submit();
  debugger;
  ...

并且当达到该行时,开发工具将接管。

答案 1 :(得分:0)

我的猜测是当你调用$(this).parents('form:first').submit()页面时发布了表单并且javascript没有执行超过该点,这就是为什么它没有抛出任何错误或写入任何文档。

我会使用console.log将测试输出与chrome或Firebug中的开发人员工具结合使用。这样你就知道要在控制台中查看,你也可以使用断点之类的东西来观察javascript的执行。