Javascript 从CoffeeScript中的click处理程序中调用另一个函数或方法
我是CoffeeScript n00b,我正在努力从单击处理程序中调用另一个函数 第一个警报出现,但第二个警报没有出现Javascript 从CoffeeScript中的click处理程序中调用另一个函数或方法,javascript,function,coffeescript,onclick,Javascript,Function,Coffeescript,Onclick,我是CoffeeScript n00b,我正在努力从单击处理程序中调用另一个函数 第一个警报出现,但第二个警报没有出现 CourseGuide = init: -> $('.js-size-unit-button').on 'click', (e) -> alert 'hello world - test' @clickHandler(e) clickHandler: (e) -> e.pre
CourseGuide =
init: ->
$('.js-size-unit-button').on 'click', (e) ->
alert 'hello world - test'
@clickHandler(e)
clickHandler: (e) ->
e.preventDefault()
console.log 'hello world - test 2'
alert 'hello world - test 2'
module.exports = CourseGuide
这是控制台中的错误:
TypeError:this.clickHandler不是函数
我有一个基本的语法错误吗?你就快到了。。。从以下位置更改代码:
$('.js-size-unit-button').on 'click', (e) ->
为此:
$('.js-size-unit-button').on 'click', (e) =>
为什么这样做有效?“胖箭头”(=>
)告诉CoffeeScript编译器确保事件处理程序中this
的值引用您定义的类,而不是其他类。通常,在Javascript中,如果在事件处理程序中使用this
,this
指触发事件的元素
Coffescript文档中对此进行了描述
您可能还需要将init
方法的声明更改为:
init: ->
致:
确保定义事件处理程序时,this的值可以引用
init: =>