Ruby 解决了的!如何在Rails应用程序中连接javascript文件?
我正在编写一个简单的RubyonRails培训应用程序,并使用语义UICSS框架。 从下拉菜单中,需要为jquery编写一些代码。 如果我直接在html代码中编写.js代码,它就会工作。 如果我把它放在一个单独的文件app/assets/javascripts/dropdown.js中,这段代码将停止工作。但是如果使用.coffee,代码将再次工作! 如何将js文件连接到Rails 因此,我有javascript/dropdown.js。我试图将它包含在application.js文件中,虽然这不是必需的,但它不起作用。 我直接在application.js中编写此代码-不起作用Ruby 解决了的!如何在Rails应用程序中连接javascript文件?,ruby,ruby-on-rails-4,ruby-on-rails-5,Ruby,Ruby On Rails 4,Ruby On Rails 5,我正在编写一个简单的RubyonRails培训应用程序,并使用语义UICSS框架。 从下拉菜单中,需要为jquery编写一些代码。 如果我直接在html代码中编写.js代码,它就会工作。 如果我把它放在一个单独的文件app/assets/javascripts/dropdown.js中,这段代码将停止工作。但是如果使用.coffee,代码将再次工作! 如何将js文件连接到Rails 因此,我有javascript/dropdown.js。我试图将它包含在application.js文件中,虽然这
解决方案: 我犯了一个语法错误。我把方法
$(document.ready)中的结束括号弄混了。.coffee文件工作正常,因为没有括号!不要在晚上编码,大脑工作不好。我在早上发现了我的错误。
P.S.因此,我在dropdown.js中使用了$(document).on('turbolinks:load',function(){})
。如果使用“turbolinks:load”,下拉菜单将在网站的所有页面上工作,而不仅仅是在索引页面上
application.js
//= require jquery
//= require semantic-ui
//= require rails-ujs
//= require dropdown
//= require activestorage
//= require turbolinks
//= require_tree .
$('.dropdown').dropdown({transition: 'drop'});
dropdown.js
//= require jquery
//= require semantic-ui
//= require rails-ujs
//= require dropdown
//= require activestorage
//= require turbolinks
//= require_tree .
$('.dropdown').dropdown({transition: 'drop'});
dropdown.js不起作用
$( document ).ready(function() {
$('.dropdown').dropdown({transition: 'drop'});
})
\u header.html.erb
_header.html.erb
<div class="ui secondary menu">
<div class="ui container">
<%= link_to "Sample App", root_path, id: "logo", class: "item header" %>
<div class="right menu">
<%= link_to "Home", root_path, class: "item" %>
<%= link_to "Help", help_path, class: "item" %>
<% if logged_in? %>
<%= link_to "Users", '#', class: "item" %>
<div class="ui dropdown item">
Account <i class="dropdown icon"></i>
<div class="menu">
<%= link_to "Profile", current_user, class: "item" %>
<%= link_to "Settings", '#', class: "item" %>
<%= link_to "Log out", logout_path, method: "delete", class: "item" %>
</div>
</div>
<% else %>
<%= link_to "Log in", login_path, class: "item" %>
<% end %>
</div>
</div>
</div>
<script>
// Script from dropdown: assets/javascript/dropdown.js
//$('.dropdown').dropdown({transition: 'drop'});
</script>
\u header.html.erb
账户
//下拉列表中的脚本:assets/javascript/dropdown.js
//$('.dropdown').dropdown({transition:'drop'});
您是否收到任何控制台错误?尝试将console.log
语句放入$(document.ready)的回调中。消息记录成功吗?控制台中没有错误。alert()
调用在application.js文件和dropdown.js文件中均有效,无需$(文档)。ready
如果alert()
调用正常,则表示该文件可用。问题可能在jQuery和TurboLink之间。尝试将$(文档)更改为$(文档)。在('turbolinks:load',yourCallback)
上,您是否收到任何控制台错误?尝试将console.log
语句放入$(document.ready)的回调中。消息记录成功吗?控制台中没有错误。alert()
调用在application.js文件和dropdown.js文件中均有效,无需$(文档)。ready
如果alert()
调用正常,则表示该文件可用。问题可能在jQuery和TurboLink之间。尝试将$(文档).ready
更改为$(文档).on('turbolinks:load',yourCallback)