2016-05-03 45 views
0

我有一個5個兒童> 1個圈和4個路徑的svg。每個都有不同的填充顏色。是否有可能瞭解哪個孩子被點擊並返回填充?使用Jquery查找子SVG節點的填充?

喜歡的東西...

$("#svgname").click(function(){ 
    alert($(clickedchildname).attr("fill")); 
}); 

謝謝。

UPDATE:

我的代碼設置了這樣的...

HTML

<div class=""> 
    <img src="img/colorsystem/darkblue.svg" height="170" width="170" id="darkblue"> 
</div> 

JS

$("#darkblue").children('g').children().click(function(){ 
    alert($(this).attr("fill")); 
}); 

SVG

<?xml version="1.0" encoding="utf-8"?> 
<svg> 
<g id="darkblueholder"> 
    <circle id="base" class="st0" cx="85.1" cy="84.3" r="71.4"/> 

回答

2

是的,有可能使用children方法,當SVG是內聯:

$("#svgname").children().click(function(){ 
    alert($(this).attr("fill")); 
}); 

或引用由use

<svg height="170" width="170"> 
    <use id="svgname" xlink:href="img/colorsystem/darkblue.svg#darkblueholder"></use> 
</svg> 

$($("#svgname").attr("instanceRoot")).children().click(function(){ 
    alert($(this).attr("fill")); 
}); 

可以使用.children('path, circle')甚至指定子類型。

它是不是可能訪問使用img加載的svg樹。

+0

謝謝@pavel我似乎無法得到這個運行。我用我的代碼更新了我的帖子。任何想法我做錯了什麼?非常感謝! – andehlu

+0

@andehlu Pavel強調,如果使用''來加載,您可以*不*與SVG交互。你必須內聯它。如果我沒有記錯,Pavel建議的''方法以前只在Firefox中工作 - 不確定是否有任何更改。 –