我是 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/