$(document).ready在Rails中不起作用

时间:2014-04-09 08:21:40

标签: javascript jquery ruby-on-rails ruby

我在我的Rails-App中使用*.js.erb,它对点击的链接作出反应。 但是当我渲染我的页面时,通过link_to到达那里,我必须刷新页面,使其工作。有什么特技,我怎么能做到这一点?

以下是我的代码的简化版本:

$(document).ready(function(){
  $('#toright').click(alert(">> was clicked"));
});

$(document).ready(function(){
  $('#toleft').click(alert("<< was clicked"));
});

$(document).ready(function(){
  $('#save').click(alert("save was clicked"));
});

$(document).ready(function() {
    alert("The document is ready!");
});

网站渲染后,它没有显示我的功能,但当我在地址栏中输入网址时,它可以正常工作。


一些编辑:

  • 我正在使用Rails 4.0.1
  • 我的资产文件夹中有js.erb
  • 确定。我已将它们全部放在一个$(文件).ready中,但我仍然需要重新加载我的文件以使我的JS工作。

更新:

所以我编辑了我的application.js以包含

$(document).ready(function(){
alert("The document is ready!");    
$('#toright').click(alert(">> was clicked"));
$('#toleft').click(alert("<< was clicked"));
$('#save').click(alert("save was clicked"));
});

并将我的js.erb设置为assets/javascripts文件夹中的.js。 但无论如何,在我刷新页面之前它才会起作用。

1 个答案:

答案 0 :(得分:0)

ready是一个jQuery函数,因此确保您在Javascript中正确使用和包含jQuery库。

此外,如果您不需要在控制器和Javascript之间交换数据,我建议您将Javascript放在资产文件夹中,例如:/app/assets/application.js。

这仅适用于Rails应用程序3.x和4.x。

最好的问候。