CoffeeScript: 太い矢印とこれを両方使うにはどうすればいいですか? 質問する

CoffeeScript: 太い矢印とこれを両方使うにはどうすればいいですか? 質問する

いくつかの jQuery イベント リスナーを持つ CoffeeScript クラスがあります。クラスを参照する必要を避けるために太い矢印を使用したいのです=>が、それでも通常は で使用される要素への参照が必要ですthis。両方を使用するにはどうすればよいでしょうか?

class PostForm
    constructor: ->
        $('ul.tabs li').on 'click', =>
            tab = $(this)
            @highlight_tab(tab)
            @set_post_type(tab.attr('data-id'))

    highlight_tab: (tab)->
        tab.addClass 'active'

    set_post_type: (id) ->
        $('#post_type_id').val(id)

ベストアンサー1

CoffeeScriptはthis、との両方@を外部コンテキストにリンクするため、jQueryが提供するコンテキスト(つまり、目的の「this」)にアクセスすることはできません。event.targetその代わり:

class PostForm
    constructor: ->
        $('ul.tabs li').on 'click', (event) =>
            tab = $(event.target)
            @highlight_tab(tab)

おすすめ記事