jquery - CoffeeScript 类和 jQuery

标签 jquery ruby-on-rails-3 coffeescript

我有一个 CoffeeScript 文件,我正在其中编写一个与音频播放器交互的类,但由于某种原因,我无法让它在我的 Rails 应用程序中的另一个 CoffeeScript 文件中很好地播放。

玩家.咖啡:

window.Player = ->
    constructor: (@player_id = "player") ->
        jw = {
                'flashplayer':"<%= asset_path('player.swf') %>"
                'controlbar': 'top'
                'autostart': 'false'
                'width':'400'
                'height':'49'
                'playlist': '[]'
                'skin':"<%= asset_path('awardfm.zip') %>"
                'dock':'false'
                'wmode':'transparent'
            }
        jwplayer(@player_id).setup(jw);

    play: (track_data) ->
        console.log track_data

player_interactions.coffee

$ ->
    jw = window.Player "player" || {}
    $('.play').click ->
        jw.play('test')

我不断收到此错误: Uncaught ReferenceError :玩家未定义

现在可以使用上述代码示例

最佳答案

要使类可全局寻址,您应该在类名称前加上“@”前缀(除非您位于闭包内,在这种情况下,您需要在其前面加上“window”前缀。但您可能不想这样做无论如何)。

玩家.咖啡

class @Player
    constructor: (@player = "player") ->
        ...

    play: (track_data) ->
        ... 

player_interactions.coffee

jw = new Player 

关于jquery - CoffeeScript 类和 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7759793/

相关文章:

javascript - MobileSafari 不会发回使用 CORS 设置的 Cookie

javascript - 将 Coffeescript 中的 true 和 false 分别转换为 1 和 -1

ruby-on-rails - after_commit :on => :create callback 中跟踪模型更改

ruby-on-rails - 如何在 Heroku 上重启 Rails 服务器?

jquery - 使用 jQuery 在悬停时为超链接添加下划线

jquery - 获取当前附加到 &lt;input&gt; 元素的文件列表

linux - 让 Rails 在不影响安全性的情况下对系统文件执行根级文件编辑

node.js - FineUploader onComplete 未使用 CoffeeScript 触发

javascript - 单击 anchor 时滚动 div 30px

javascript - 在 javascript 中,在函数外部获取数组值有问题吗?