2013-02-23 26 views
1

創建畫布我一直試圖讓這個工作幾天。最後我通過輸入參數手動創建畫布,但現在我需要將它連接到一個div。拉斐爾js無法通過參考div

的問題是,試圖創建一個基於格在畫布上時,我總是從拉斐爾JS同樣的錯誤:

TypeError: b is undefined 

繼承人快速的jsfiddle,但你會看到在Firebug相同的結果(雖然它顯示了一個不同的庫名,它是rapheal導致它)

http://jsfiddle.net/GXXuD/3/

請幫幫忙!這讓我瘋狂。

+1

至少在你的小提琴,你的DIV的ID被拼錯 – lmortenson 2013-02-23 23:35:00

+0

噢!對不起,我更新。我認爲我幾乎找到了一個解決方案,但不管怎樣,我仍然不斷提出這個問題來指出問題。當我完成時,回答它 – JackalopeZero 2013-02-23 23:52:24

+0

這一切都在你的腦海中,請參閱[更新的小提琴](http://jsfiddle.net/GXXuD/4/) - 紙張創建得很好。只改變了紙張的一致性,並修正了有缺陷的CSS屬性('background_color'爲'background-color')。 – 2013-03-02 19:02:29

回答

3

我發現這樣做的唯一方法並不涉及到文檔,我只是不得不破解它。如果有其他人遇到了讓Rapheal js將一個canvas/paper分配給div的問題,這種方法可以正常工作。

JS

var new_width = $('#map img').width(); 
var new_height = $('#map img').height(); 

$('#map').css({'height':new_height, 'width':new_width}); 
var paper = new Raphael("canvas", new_width, new_height); 

HTML

<div id='map'> 
    <div id="canvas"></div> 
    <img src="path/to/image"/> 
</div>