Javascript Jquery在Coffeescript函数Rails中不工作

Javascript Jquery在Coffeescript函数Rails中不工作,javascript,jquery,ruby-on-rails,coffeescript,Javascript,Jquery,Ruby On Rails,Coffeescript,我不熟悉咖啡脚本,所以如果这是一个简单的问题,请原谅我 我试图在Rails中加载特定视图时进行一个简单的类更改。具体而言,我想运行: $(#mydiv).addClass('活动') 在我的咖啡脚本中,我有以下内容: class MyApp.Sessions extends MyApp.Base constructor:() -> super # call Base class for core functionality this # and be sure t

我不熟悉咖啡脚本,所以如果这是一个简单的问题,请原谅我

我试图在Rails中加载特定视图时进行一个简单的类更改。具体而言,我想运行:

$(#mydiv).addClass('活动')

在我的咖啡脚本中,我有以下内容:

class MyApp.Sessions extends MyApp.Base
  constructor:() ->
    super  # call Base class for core functionality
    this   # and be sure to return this

  index:() -> 
    $ -> 
        $('#mydiv').addClass('active')
但最终的javascript将我的Jquery命令放在函数之外:

Sessions.prototype.index = function() {
  return $(function() {});
};

$('#mydiv').addClass('active');

有什么想法吗?

这看起来很复杂。如果您只想在加载页面时设置一个类,那么答案取决于您是否使用了from Rails 4

使用TurboLink,您可以像

document.on 'page:load', () ->
  $('#mydiv').addClass 'active'

不,它不是:我真的不喜欢turbolinks(出于许多原因,我在这里不讨论),所以我正在寻找一种方法来执行特定于页面的加载。如果您不使用turbolinks,那么您可以在视图本身中放置一个脚本标记来记录.ready(function(){$('#mydiv').addClass('active');};在我看来,我希望避免内联脚本,因为它不会在资产中预编译,并且会降低页面加载速度。如果您将脚本放在底部并使用document.ready(function(){…}),那么它就不会真正降低页面加载速度。预编译所需的代码量非常少,但是YMMV。