javascript - 从 jQuery 回调中引用 CoffeeScript 中的父类

标签 javascript coffeescript

我是 CoffeScript 的新手,我想知道是否有一种方法可以在不引用全局变量 app 的情况下编写以下代码:

class App 

    constructor: ->
        @ui = ui.init()
        $('#content-holder a[rel!=dialog]').live 'click', ->
            link = $(@).attr 'href'
            app.loadUrl link
            return false

    loadUrl: (href) ->
        # ...

app = new App()

使用粗箭头不起作用,因为那样我就失去了对 jQuery 对象的引用,即

class App   
    constructor: ->
        @ui = ui.init()
        $('#content-holder a[rel!=dialog]').live 'click', =>
            # @ now references App
            link = $(@).attr 'href'
            this.loadUrl link
            return false

    loadUrl: (href) ->
        # ...

第一段代码有效,但我想尽可能去掉全局变量:-)

干杯, 煤气。

最佳答案

您的点击处理程序获取传入的事件...因此您可以使用“粗箭头”获得两全其美,而无需同时引用 self :

constructor: ->
    @ui = ui.init()
    $('#content-holder a[rel!=dialog]').live 'click', (e) =>
        link = $(e.target).attr 'href'
        @loadUrl link
        return false

关于javascript - 从 jQuery 回调中引用 CoffeeScript 中的父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7716849/

相关文章:

javascript - 用于并行加载依赖数据源的 Coffeescript/Javascript 设计模式

ruby-on-rails - Active Admin 类型错误 - Ruby on Rails

javascript - Coffeescript:从同一对象中的函数调用数组函数

javascript - 未捕获的类型错误 : Object 1 has no method 'indexOf'

javascript - 重定向页面不显示 url 值

javascript - 来自 Node.JS(使用 express)服务器的跨域 jQuery.getJSON 在 Internet Explorer 中不起作用

javascript - 使用纬度、经度获取距离我的位置最近的五个地理位置名称

json - 如何在 CoffeeScript 中总结 JSON 对象的属性?

javascript - Hubot 正则表达式 - 在第一场比赛中停止,而不是尝试所有比赛?

javascript - 将数组值与对象键进行比较