Javascript Jquery在Coffeescript函数Rails中不工作
我不熟悉咖啡脚本,所以如果这是一个简单的问题,请原谅我 我试图在Rails中加载特定视图时进行一个简单的类更改。具体而言,我想运行: $(#mydiv).addClass('活动') 在我的咖啡脚本中,我有以下内容: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
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。