2012-01-30 45 views
0

我有這樣的腳本增加了一個基本的矩形在RaphaelJS紙對象,然後設置一些自定義屬性到矩形:自上RaphaelJS節點屬性在IE8

var furniture = paper 
    .rect(0, 0, 100, 200) 
    .attr({ 
    fill: '#ccc' 
    }) 
; 


furniture.node.id = 'some-id'; 
$(furniture.node).attr('class','draggableFurniture'); 
$(furniture.node).attr('productId','1234'); 
$(furniture.node).attr('title','Some title'); 
$(furniture.node).attr('price','123.99'); 

這在IE9的偉大工程Firefox/Chrome等,但在IE8或7中不起作用,大概是因爲這些瀏覽器使用VML而不是SVG,據推測VML沒有像SVG那樣可以使用的DOM結構。

我想知道如何將所有瀏覽器中的自定義屬性一致地保存到這些對象中(至少包括IE8 & 7)?

謝謝大家!

回答

0

我認爲最好的辦法是用拉斐爾的getById()。您可以設定一個內部ID。在這裏我已經回答了一個問題,你有一個如何去做的例子。

adding ID's to raphael objects

再見!

+0

謝謝,但沒有設置id,也沒有處理任何其他自定義屬性。我不能將它標記爲解決方案,但我的第二篇文章是我正在尋找的解決方案 - 對每個自定義屬性使用「數據」方法。所有測試和工作完美。無論如何,謝謝。 – Dan 2012-01-30 22:58:29

+0

不,這就是你如何通過它的ID獲得元素,至於你可以像在帖子中顯示的那樣設置,我建議你閱讀:element.id ='Idofelement'。一旦你有了這個ID,你就會得到帶有getById('Idofelement')的元素。與使用數據類似,但更直接。 – limoragni 2012-02-01 14:36:09