Est*_*Lin 8 javascript jquery ruby-on-rails
我已经阅读了许多关于在rails中使用jquery的页面,但似乎无法让它工作.
我有'jquery-rails'宝石,我安装了.我在application.js文件中有require语句.
这是我一直在运行的测试页面:
<!DOCTYPE html>
<html>
<head>
<title><%= yield(:title)%></title>
<%= javascript_include_tag 'application','jquery', 'data-turbolinks-track' => true %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<script>$(document).ready(function(){
$(".bg-info").click(function(){
$(this).hide();
});
});</script>
</head>
<body>
<center>
<h1 class="bg-info"><%= yield(:title)%></h1>
</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是,当我点击浏览器中的"bg-info"文本时,我得不到任何回复.
这是你应该拥有的:
#app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require_tree .
$(document).on("click", ".bg-info", function(e){
$(this).hide();
});
Run Code Online (Sandbox Code Playgroud)
这是我为布局做的事情(测试):
#app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title><%= yield(:title)%></title>
<%= javascript_include_tag 'application','jquery', 'data-turbolinks-track' => true %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<div class="bg-info"><%= yield(:title)%></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果上述方法无法解决问题,那么您的开发环境(OS)可能会出现问题- 最有可能出现问题.ExecJS
为了证实这一点,你需要调试您的开发者控制台:
要访问开发控制台,right-click > inspect element > console.
这表明您的JS和前端环境有任何错误.如果出现任何错误,他们可能会告诉您问题所在.
如果没有出现错误,您应该尝试在系统上安装NodeJS,因为这可以确保Rails可以使用适当的JS可执行文件.