gpt4 book ai didi

javascript - 从 CoffeeScript 中的点击处理程序中调用另一个函数或方法

转载 作者:行者123 更新时间:2023-11-30 16:29:06 24 4
gpt4 key购买 nike

我是 CoffeeScript n00b,我正在努力从我的点击处理程序中调用另一个函数。

第一个警报出现,但第二个警报不出现。

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 is not a function

我有基本语法错误吗?

最佳答案

你就快完成了......从这里更改代码:

$('.js-size-unit-button').on 'click', (e) ->

为此:

$('.js-size-unit-button').on 'click', (e) =>

为什么会这样? “粗箭头”(=>) 告诉 CoffeeScript 编译器确保事件处理程序中 this 的值引用您定义的类,而不是某些东西别的。通常,在 Javascript 中,如果您在事件处理程序中使用 this,则 this 指的是触发事件的元素。

这描述了in the section entitled "Bound Functions, Generator Functions"在 Coffeescript 文档中。

您可能还需要更改 init 方法的声明:

init: ->

到:

init: =>

确保在定义事件处理程序时,this 的值具有可引用的内容。

关于javascript - 从 CoffeeScript 中的点击处理程序中调用另一个函数或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33615232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com