いくつかの 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)