2017-02-11 35 views
0

我在應用程序中使用jquery 1.11.3,但jquery 1.11.3似乎不想訪問SVG中的元素。這可能嗎。我不明白爲什麼不。如何讓舊的jquery版本訪問SVG元素

使用jQuery的1.11.3 - 不工作(更新,現在使用的版本1.12.4和它的作品)

http://codepen.io/omarel/pen/zNMJOJ

使用jQuery的3.1 - 工程

http://codepen.io/omarel/pen/XpyBOq

UPDATE: 感謝@Rikin我意識到我可以使用版本1.12.4開始向SVG添加類名,幸運的是這個版本與我正在使用的應用程序一起工作。

JQUERY

$(".amenitylink").on("click", function() { 
    $('svg #lobby').toggleClass("highlight"); 
}); 

HTML

<div class="amenitylink">click me</div> 

<svg version="1.1" id="main" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 
width="276px" height="210px" viewBox="0 0 276 210" style="enable-background:new 0 0 276 210;" xml:space="preserve"> 
<style type="text/css"> 
<![CDATA[ 
.st0{fill:none;stroke:#FFFFFF;stroke-width:11;stroke-miterlimit:10;} 
]]> 
</style> 
<rect id="lobby" x="13" y="17" class="st0 " width="240" height="179"/> 
</svg> 

CSS

body { 
background-color:#000; 
color:#fff; 
} 
.amenitylink { 
cursor:pointer; 
padding:10px; 
border:1px solid white; 
} 
.highlight { 
    fill:rgba(134, 117, 77, 0.4) !important; 
} 
+1

它確實針對SVG元素,但無法在其中添加類名。可能是一個已知的問題,然後在jQuery的更高版本中修復。 – Rikin

+0

非常感謝。儘管沒有答案,但您的評論允許我通過添加類名的版本。我發現1.12.4,它仍然與我的應用程序兼容!謝謝 – obreezy

回答

1

正如上述評論v1.11.3 - 它正確地做目標SVG元素,但無法添加里面的類名。當我調試它顯示這樣的東西[object SVGsomething] highlight

SVG元素類添加已解決在〜1.12.4庫中,您可以使用它來解決您的問題。