2015-09-25 116 views
0

無法將事件偵聽器添加到對象。也許有人解決了同樣的問題?我得到錯誤「Uncaught TypeError:canvas.on不是函數」。我也使用jQuery,可以在這個問題?我的代碼:不能將事件偵聽器添加到對象。 fabricjs

window.onload = function() { 
     var canvas = new fabric.Element('canvas'); 
     var imgElement = document.getElementById('uploaded_img'); 
     var width = imgWidth = imgElement.width; 
     var height = imgHeight = imgElement.height; 

     if(width >= screen.width){ 
      width = (screen.width - 70); 
     } 

     canvas.setWidth(width); 
     canvas.setHeight(height); 

     var imgInstance = new fabric.Image(imgElement, { 
     left: width/2,    
     top: height/2   
     });      
     canvas.add(imgInstance); 

     canvas.on('mouse:up',function() { 
      alert('test'); 
     }); 
} 
+0

我從來沒有使用畫布,但你的第一行代碼看起來過時了。而不是'var canvas = new fabric.Element('canvas');'當前的網站初始化代碼全部爲:'var canvas = new fabric.Canvas('canvas');' – mwarren

+0

我已經嘗試了這兩個變體,但它不起作用... –

+0

當我更改「canvas.on('mouse:up',function()...」on「canvas.observe('mouse:up ',function()「一切工作正確,但在文檔建議使用第一個變體,因爲我知道它是標準的js函數。是否有人可以解釋canvas.on()中的canvas.observe()在fabricjs中的差異? –

回答

0

http://fabricjs.com/docs/fabric.Canvas.html

fabric. Canvas 
fabric.Element 
new Canvas() § 
Deprecated: 
Use fabric.Canvas instead. 
Source: 
fabric.js, line 9066 

所以Fabric.Element已被棄用。因此強烈建議不要使用它。

無論如何,我無法找到這個過時「元素」的方法的文檔任何東西。

所以我推測,在回答你的問題是使用推薦的帆布構造。我也認爲on()方法實際上並不存在於Element上,正如錯誤所述。

相關問題