通常更好的做法是:
$ ->
$('.thing-one').on 'click', ->
window.myVar = 1
$('.thing-two').on 'click', ->
console.log window.myVar
...或
$ ->
myVar = 0
$('.thing-one').on 'click', ->
myVar = 1
$('.thing-two').on 'click', ->
console.log myVar
答案 0 :(得分:0)
$ ->
@myVar = 0
$('.thing-one').on 'click', =>
@myVar = 1
$('.thing-two').on 'click', =>
console.log @myVar
因为动态范围是在窗口级别,所以您不需要声明它。 this
是window
个对象。但是,您必须在执行回调时绑定上下文,如=>
所示。这样做会保留你的动态范围。如果你选择直接将它放在窗口上以避免上下文,只需使用一个好的命名空间。 Coffeescript让事情变得简单:
window.someNameSpace ?= {}
someNameSpace.myVar = 0