jQuery选择所有SVG路径并应用动画填充

jQuery选择所有SVG路径并应用动画填充,jquery,path,svg,selector,Jquery,Path,Svg,Selector,我有一个工作的国家地图,其中的区域可以在点击和悬停时进行动画填充。每一条路径都是单独工作的 我想添加一个全选/全清选项,将单击效果应用于所有路径。 我创建了一个新的div <div id="selectAll">Click to Select All</div> 选择器“[id^=Co]”可以访问所有路径,因为它们的所有id都以“Co”开头。对于每个区域,此选择器也与我的qtip完美配合 我不确定我做错了什么。任何指导都会大有裨益。 tia在选择操作中,您必须以某种方式

我有一个工作的国家地图,其中的区域可以在点击和悬停时进行动画填充。每一条路径都是单独工作的

我想添加一个全选/全清选项,将单击效果应用于所有路径。 我创建了一个新的div

<div id="selectAll">Click to Select All</div>
选择器
“[id^=Co]”
可以访问所有路径,因为它们的所有id都以“Co”开头。对于每个区域,此选择器也与我的qtip完美配合

我不确定我做错了什么。任何指导都会大有裨益。
tia

在选择操作中,您必须以某种方式获取raphaël对象以使用raphaël的动画功能。不确定这是否可能


但是,您可以创建一个以后需要更改的路径的raphaël,然后只需单击更改该
集的填充。

添加jquery.color插件,然后在代码之前添加:

  jQuery.Color.hook( "fill stroke" );
然后您的原始动画功能将工作

$('#selectAll').click(function(){
  $("[id^=Co]").animate({
         fill: '#698B22'
         }, 300);
});

动画
功能无法识别
填充
效果。你在用插件还是什么?如果你需要设置颜色动画,你需要jQuery颜色插件:对不起,我应该提到:是的,我正在使用raphael.js,目前正在hover上使用
obj.hover(function(){this.animate({fill:'#32CD32'},300);},
等。我试图找到一些方法来选择所有的对象,我最终得到了所有要更改颜色的区域:
$(“#selectAll”)。单击(function(){$(“#map path”).attr({fill:“#698B22'})
但如果没有动画,我会活下去……我使用拉斐尔
梅奥的路径示例:{name:'Mayo',value:'notSelected',path:'m85.529143.84497c-0.271,0.01599z'},
等(为显示而截断)单击路径时,值notSelected更改为isSelected,路径[arr[this.id]]。value=“isSelected”
这样我就可以控制鼠标悬停是否应该改变颜色。因此,当单击div selectAll时,所有路径都应该改变颜色,并且它们的值都应该设置为isSelected。我对json还是新手,虽然我已经用XML用Java构建了一个完整的messenger应用程序,但我不熟悉jQuery和解析json。我尝试使用for loo我想也许我已经盯着这个SVG/Raphael任务太久了:)请注意,如果像这样使用jQuery,它可能无法在旧的IE版本(使用VML的版本)中正确显示基本上,我想说的是:除非你确定你只需要支持支持SVG的浏览器,否则混入jQuery是个坏主意。如果你确定你可以需要SVG,那么就更接近你想要的了,因为它不像Raphaël那样隐藏SVG元素,而且它与jQuery相似,选择器是一个核心概念。非常感谢我有一个我正在研究的老例子,它在IE6上确实有效,尽管速度很慢。而且我不能使用
toFront()
…即使在IE9上也是如此。
$('#selectAll').click(function(){
  $("[id^=Co]").animate({
         fill: '#698B22'
         }, 300);
});