javascript
  • javascript-events
  • google-closure-library
  • 2014-10-16 3 views 0 likes 
    0

    Google 클로저 라이브러리를 사용 중이며 클릭 및 마우스 이동 이벤트에 등록하고 있습니다. 그러나 나는 마우스 이벤트를 가져 오지 않는다. 이것은 Chrome 브라우저에서 관찰되며 Firefox에서 동일한 이벤트가 발생합니다.마우스 이동 이벤트를 가져 오지 못했습니다.

    <canvas id='canvas1' width="512px" height="512px" style='top:0px;right:0px;' > </canvas> 
    
    MyTest.virtualCanvas = function(){ 
        this.destCanvas = document.getElementById('canvas1'); 
        this.destCtx = this.destCanvas.getContext('2d'); 
    
    
        this.getCallBackFn = this.highContrastFn.bind(this); 
        this.mouseMoveBackFn = this.mouseMoveCB.bind(this); 
    
        goog.events.listen(this.destCanvas, goog.events.EventType.CLICK, this.getCallBackFn); 
        goog.events.listen(this.destCanvas, goog.events.EventType.MOUSEMOVE, this.mouseMoveBackFn); 
    
    
    }; 
    
    
    
    MyTest.virtualCanvas.prototype.mouseMoveCB = function(evt){ 
         var x = evt.offsetX; 
         var y = evt.offsetY; 
    
    } 
    
    MyTest.virtualCanvas.prototype.highContrastFn = function(evt){ 
        var x = evt.offsetX; 
        var y = evt.offsetY; 
    
    } 
    
    +0

    이걸 jsfiddle에 넣을 수 있습니까? –

    +0

    @OliverWatkins jsfiddle을 넣어 보겠습니다. – Abhinav

    답변

    0

    위의 이유가 작동하지 않는 이유는 확실하지 않습니다. 그러나 구글 클로저에서 bind 메소드 함수를 사용하면 작동합니다.

    goog.events.listen(this.destCanvas, goog.events.EventType.MOUSEMOVE,goog.bind(this.mouseMoveCB, this)) 
    

     관련 문제

    • 관련 문제 없음^_^