我在application.js文件中放了一些js代码,但它不起作用......
的application.js:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//...
obj.dd.on('click', function(event){
$(this).toggleClass('active');
return false;
});
//...
$(function() {
var dd = new DropDown( $('#dd') );
$(document).click(function() {
// all dropdowns
$('.wrapper-dropdown-5').removeClass('active');
});
});
iI也在initializers / assets.rb文件中激活了一行:
Rails.application.config.assets.precompile += %w( search.js )
但无论如何我的代码无法在视图中使用。我认为应该没有什么额外的,就像在application.js中一样。
或者可能应该有别的东西?
答案 0 :(得分:1)
1)您是否在应用程序布局中提到了这一点?
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
2)在此之后,在application.js
中使用警告消息alert('Hello');
答案 1 :(得分:0)
applications.js
中的工作javascript会有效。所以我猜你的问题不是它的application.js
部分,而是你的功能不起作用。
在console.log 'clicked'
功能中添加click
以查看是否点击了火。我认为您的javascript问题可能与您的点击功能无关,而不是document.ready()
功能。
答案 2 :(得分:0)
Rails.application.config.assets.precompile + =%w(search.js)
通过查看上面的代码行。我猜你有search.js
档案。每当您想使用外部js文件(手动添加)时,您必须通知 application.js 文件以包含此类文件。
因此,您的application.js
文件应该是(如果您要添加 search.js
,该文件不在app/assets/javascript/
下并放在vendor/assets/javascript/
下)< / p>
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require search #js file will be added like this without it's extension
//= require_tree .
注意: //= require_tree
将包含app/assets/javascript/
文件夹下的所有js文件。