1
我正在寫一個簡單的CoffeeScript類,但我運行到一個上下文的問題與此代碼:document.addEventListener「這個」背景下
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/
我怎樣才能解決這個問題?
@馬丁這是你周圍的CS場景中獲得的方式,但你應該明白它做什麼引擎蓋下。將胖箭頭代碼粘貼到在線CS代碼中,並查看它是如何設置「self = this」的 – Trevor 2013-02-14 02:32:40