単純なCoffeeScriptクラスを作成していますが、次のコードでコンテキストの問題が発生しています。
class DragDrop
constructor: (@selector, @bodyDragEnterClass = "drag-over") ->
@attachEventHandlers()
attachEventHandlers: () ->
document.write(@bodyDragEnterClass) # this line tells me, that @bodyDragEnterClass is "drag-over"
document.addEventListener("dragenter", @onDragEnter, false)
onDragEnter: () ->
document.write(@bodyDragEnterClass) # this line tells me, that @bodyDragEnterClass is undefined
jQuery("body").addClass(@bodyDragEnterClass)
window.DragDrop = DragDrop
attachEventHandlers
メソッドが呼び出されると、期待@bodyDragEnterClass
どおりに「ドラッグオーバー」に設定されます。ただし、dragenter
イベントがトリガーされ、onDragEnter
メソッドが呼び出されると、@bodyDragEnterClass
は「未定義」になります。
ここでコンテキストの問題を示すためにjsfiddleを作成しました:http://jsfiddle.net/SVvrM/
この問題を解決するにはどうすればよいですか?