svg更改多边形颜色onclick

时间:2014-03-26 00:30:35

标签: svg jquery-svg

我在我的网页上有一张法国的SVG地图,每个地区都是一个多边形,当我点击某个地区颜色发生变化并保持这种状态直到我再次点击它时,我需要这样做

这是我的代码

function init(evt) {
  if ( window.svgDocument == null ) {
      svgDoc = evt.target.ownerDocument;
   }

function update(district){
    $(this).find("path, polygon, circle").attr("fill", "#0d0");<- what is wrong
   }

这是我的多边形之一

<path id="14" d="M82.387,173.009L109.168,141h2.42l3.33-5.965l20.425,8.818l5.296,0.475l-
 1.876,31.861l5.236,7.5v8.018 l-15.6-1.701l
 0.273-3.599C128.127,186.407,99.635,180.95,82.387,173.009z" fill="#CCCCCC"
onclick="update('14')">

你可以看到我得到onclick事件问题是我不能让多边形改变颜色。

提前感谢。

1 个答案:

答案 0 :(得分:2)

  1. 检查这是什么。一个console.log(这个)会让你的生活变得更加轻松
  2. 我将回答1.当调用函数时,这将指向窗口对象。因此,执行$(this).attr会在窗口对象中找到属性,而不是在您期望的对象中。
  3. 由于您在函数中传递了对象ID,因此您可以使用它来查找文档中的元素。你可以这样做:

    $('#'+ubicacion).attr("fill","blue")
    
  4. 小提琴here