2012-10-16 57 views
0

實際上,這可能更多的是Javascript問題,但由於我在d3中編碼時遇到了問題,並且因爲它只發生在IE9中,所以我認爲它特別與d3相關用戶。.map生成錯誤形狀的多邊形點列表

這裏是我做的: 我開始時加入的鼠標點擊到一個數組:

daLineArray.push({ x: d3.mouse(this)[0], y: d3.mouse(this)[1] }); 

從這我生成的路徑,通過將所得到的陣列到 d3.svg.line發生器。這適用於所有瀏覽器。

然後我轉動路徑成多邊形由第一原始數組 映射成一個較短的一個:

daLineArrayShort = daLineArray.map(function(d) { return d3.values(d) }); 

,然後送入d3.area發生器此。

在IE9, 之外的所有瀏覽器中都會生成一個很好的多邊形,它會抱怨點列表沒有正確的格式。

說實話,IE9是對的。

當我檢查它的HTML生成的多邊形的形式,它看起來像這樣(的 數字是虛構在這種情況下):

points="10,10,20,20,30,30,40,40,etcetera" 

雖然我想應該這樣看:

points="10,10 20,20 30,30 40,40 etcetera" 

換句話說,在預計空間爲 的座標對之間有逗號。

我之前就注意到了這一點,但我只是意識到這是一個問題,當我在IE9中測試了我的工作時。

所以,我的問題是:我如何產生一個正確解析的數組?

(我曾嘗試直接推到分daLineArrayShort (.push([d3.event.pageX, d3.event.pageY]),但是這並沒有產生 適當點列表或者 - 逗號一直支撐着。)

回答