4
我有一堆畫布上拉斐爾元素的對象,並與各相關的數據,比如:Raphael.js在哪裏存儲使用element.data()方法設置的元素數據?
element.data('dataVal',x);
在上面的例子,我想知道X的存儲位置。我一直在尋找通過源Raphael.js,並已在本節將目光聚集在:
elproto.data = function (key, value) {
var data = eldata[this.id] = eldata[this.id] || {};
if (arguments.length == 1) {
if (R.is(key, "object")) {
for (var i in key) if (key[has](i)) {
this.data(i, key[i]);
}
return this;
}
eve("raphael.data.get." + this.id, this, data[key], key);
return data[key];
}
data[key] = value;
eve("raphael.data.set." + this.id, this, value, key);
return this;
};
所以,我的直覺是,「eldata」是拉斐爾紙對象的屬性和「eldata」包含每個Raphael元素的對象,並且這些對象存儲數據。
從本質上說,我的問題是:一旦我已經創建了一個拉斐爾畫布,添加的元素,並添加數據到這些因素,我將如何訪問數據(不使用拉斐爾功能)?我嘗試了一些簡單的東西,比如尋找R.eldata(其中R是拉斐爾的畫布),但那並不富有成效。
您的幫助表示讚賞!
嚴格來說,這是一個*本地*變量。 –
@RobW True。我只是認爲「私人」使得「無法訪問」比「本地」更好。仍然更新。 –
謝謝喬納森。我對Javascript比較陌生。對於我自己的學習,是拉斐爾紙對象的方法或只是元素對象(或兩者?)的範圍的eldata。繞點我一般的混亂是中心,在那裏eldata聲明此包裝函數只運行一次 - 這樣的話是有創造(範圍爲所有元素)eldata每拉斐爾畫布對象只有一個實例或者是有eldata的實例,每個給定畫布上的元素?謝謝。 –