我試圖開發一個交互式的SVG地圖,似乎無法獲得原型來擴展內聯SVG元素。這裏是我的示例代碼(去掉路徑數據,因爲它是巨大的):可以Prototype擴展SVG元素嗎?
<svg id="map" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="330" height="500" viewBox="-16037,-19651 28871,44234">
<g id="state_outline">
<path id="state" fill="white" stroke-width="200" d="..." />
<path id="water" fill="#a0a0ff" d="..." />
</g>
<g id="counties">
<path class="county" id="adams" d="..." />
...
</g>
</svg>
<div id="nottamap"></div>
<script type="text/javascript">
console.log($('nottamap'));
console.log($('nottamap').identify());
console.log($('counties'));
console.log($('counties').identify());
</script>
運行的結果是:
<div id="nottamap">
nottamap
<g id="counties">
$("counties").identify is not a function
$()僅僅是拒絕,如果它的一部分延伸傳遞給它的元素的SVG元素。有沒有關於Prototype與XML元素的互動,我不瞭解,還是有更好的方法讓我去做這件事?
迷人的問題。我不知道瀏覽器如何實現SVG元素;他們顯然不是DOM節點。 – Pointy 2012-02-03 23:31:34
JSFiddle演示:http://jsfiddle.net/SMTsm/ – 2012-02-03 23:33:12
(稍微不同的演示:http://jsfiddle.net/SMTsm/2/) – 2012-02-03 23:39:23