2011-10-10 63 views
3

剛開始使用Raphael。Raphael JS - paper.remove

現在我發現,paper.remove()正在生成一個腳本錯誤:

"SCRIPT5009: 'removed' is undefined 

這是一個腳本錯誤?

我的變量paper因此初始化:

var paper = new Raphael(document.getElementById('canvas_container'), 500, 500); 

我的HTML身體有:

<div id="canvas_container"></div> 

這是詳細信息 - 我使用拉斐爾2.0我只是再次下載。運行IE9。以下是高亮的問題拉斐爾JS功能:

R.prototype.remove = function() { 

     eve("remove", this); 
     this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas); 
     for (var i in this) { 
      this[i] = removed(i); 
     } 
    }; 

行...刪除(我)被高亮顯示 - > SCRIPT5009:「刪除」是不確定的

BTW我是新來的這個論壇。有沒有辦法迴應「回答你的問題」以外的線程?

+0

除了回答問題外,您只能輸入註釋。 –

回答

0

我不知道你是否提供了足夠的信息來回答這個問題。

  • 您使用的是什麼版本的Raphael?
  • 什麼瀏覽器?
  • 它是否正確加載 - 你能創建任何Raphael對象嗎?

如果您只是在刪除紙張,請參閱下面的小提琴。

JSFiddle

這似乎很好地工作,我與拉斐爾1.5.2

希望幫助(甚至略)。

+0

我剛試過你的JSFiddle並得到相同的錯誤。也許拉斐爾2.0版的問題? –

+0

我找到了一個Raphael 0.8.2版,並嘗試過paper.remove()和IT WORKS。所以必須是最新發布版本中的錯誤。 –

+0

我發現這是在3小時前在github上打開的問題。建議的解決方法是改變這個[i] = removed [i];到這[i] = null; - 拉斐爾2.0圖書館4443行。這似乎工作 - 至少paper.remove()現在起作用。 –

4

我跑過這幾次了。由sudoko-san建議的4443線方法在瀏覽器中工作,但不能與IE-7 & 8(使用raphael的整個點)向後兼容。

另一個解決辦法是實現在你的JavaScript下面的代碼:

try{ 
    paper.remove(); 
} 
catch (error) { 
    // this catches the error and allows you to proceed along nicely 
} 

這就是它!