因此,我的控制器有 3 个以下 JS 文件:
movie.js.coffeee
application.js
facebook.js.coffee.erb
sessions.js.coffee
users.js.coffee
出于某种原因,当我将 JS 代码放入我的 users.js.coffee 或 facebook.js.coffee.erb(或任何其他文件)中的 $(document).ready 中时,它不会触发。即我在 users.js.coffee 中放了一个简单的警报:
$ ->
alert 'hello'
但这不会执行。
我还有代码可以在 facebook.js.coffee.erb 中使用 Facebook 的 JavaScript SDK,但是当我将代码放在 $(document).ready() 中时,这一切都不会执行。
我不得不求助于将我所有的 JS 代码放在 movie.js.coffee 文件中,并且它都可以在其中工作。在该文件中,我有以下代码:
$ ->
#Home page login dropdown
$('.dropdown-toggle').dropdown()
$('.dropdown input, .dropdown label').click (e) ->
e.stopPropagation()
#Users edit page
$('.hint a').tooltip()
#Movie show page
$('#movie-tabs a:first').tab('show')
$('#movie-info').stickyMojo({footerID: '#footer', contentID: '#movie-description'})
我的 application.js 文件如下所示:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_self
//= require_tree .
这很烦人,知道为什么会这样吗?当 JS 代码没有包装在 $(document).ready 的其他文件中时,它可以工作,但我最好避免这种情况。