admin管理员组文章数量:1305999
I've read many pages about using jquery in rails and still can't seem to get it to work.
I have the 'jquery-rails' gem, and I installed. I have the require statements in the application.js file.
Here is a test page I keep running:
<!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>
But when I click on the "bg-info" text in the browser I get no response.
I've read many pages about using jquery in rails and still can't seem to get it to work.
I have the 'jquery-rails' gem, and I installed. I have the require statements in the application.js file.
Here is a test page I keep running:
<!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>
But when I click on the "bg-info" text in the browser I get no response.
Share Improve this question edited Nov 1, 2015 at 15:39 Nakilon 35.1k16 gold badges111 silver badges148 bronze badges asked Oct 27, 2015 at 23:10 Ester LinEster Lin 6172 gold badges7 silver badges20 bronze badges 5-
this is a stretch but in your
assets/javascripts/application.js
, do you have the following line://= require jquery
. Or maybebundle install
? – philip yoo Commented Oct 27, 2015 at 23:22 -
Can you try the following:
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
. Removejquery
from that line, restart server, and try running – philip yoo Commented Oct 27, 2015 at 23:33 -
Try running
rake assets:clobber
. Maybe there are some asset cache problems – yivo Commented Oct 27, 2015 at 23:34 - Open developer console in your browser and try to execute $(".bg-info").length (on that page where bg-info is located) – Src Commented Oct 27, 2015 at 23:39
-
Can you include your
application.js
file? – Graham S. Commented Oct 28, 2015 at 3:17
1 Answer
Reset to default 6Here's what you should have:
#app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require_tree .
$(document).on("click", ".bg-info", function(e){
$(this).hide();
});
Here's what I'd do for the layout (to test):
#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>
If the above doesn't work out the box, you'll probably have an issue with your development environment (OS) -- most likely with ExecJS
.
To confirm this, you'll need to debug your developer's console:
To access the dev console, right-click > inspect element > console
.
This shows you any errors with your JS & your front-end environment. If any errors appear, they may tell you what the issue is.
If no errors appear, you should try installing NodeJS on your system, as this ensures Rails can use the appropriate JS executable.
本文标签: javascriptjquery not working in railsStack Overflow
版权声明:本文标题:javascript - jquery not working in rails - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741815531a2399054.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论