所以我有这个问题。我想用Snap库创建一个页面,但我没有找到任何方法来选择所有元素,除了我之前的那个元素。徘徊过来。 JQuery应该对这些东西很好,但我不知道如何在SVG Snap加载函数中运行它:/我的代码是:
<script>
var s = Snap("#svg");
Snap.load("fin.svg",onSVGLoaded);
function onSVGLoaded(d){
var all = d.selectAll(".plasmid");
s.append(all);
var mono = s.select("#mono");
mono.drag();
$(mono).click(function(){
$(this).fadeOut("slow");
});
};
</script>
其中fin.svg是外部svg文件,.plasmid是svg文件中的一个类,图形和单声道的所有部分都是图形的一部分。 mono.drag()部分正在运行,但jQuery的东西不行。你能帮忙吗?
答案 0 :(得分:0)
如果你有这个:
<object class="someselector" data="external.svg"></object>
你可以使用jQuery:
<script>
$(window).load(function(){
var a = ($(".someselector").contents().find('svg'))[0];
var s = Snap(a);
var something = s.someSnapfunctions();
});
</script>
对于iframes和svg,请始终使用$(windows).load和contents()
你可以在$(window).load中使用jQuery的函数:
$('.someselector').load(function(){
// do something
var b = ($(".someselector").contents().find('svg').find('anotherselector'));
b.each(function(){
Snap($(this)[0]).attr({
fill: "#bada55" // change color!
});
});