d3拖动工作但出现Uncaught TypeError:a.target.className.indexOf不是函数

时间:2015-07-14 15:51:23

标签: d3.js svg drag

我练习使用d3来拖动svg圈。

除了控制台中出现以下错误外,它有效: “未捕获的TypeError:a.target.className.indexOf不是函数”

我的代码出了什么问题?以下是我的代码:

<!DOCTYPE html>
<html lang="zh-Hant">
  <head>
    <title></title>
    <meta charset="UTF-8">
    <script src="http://d3js.org/d3.v3.min.js"></script>
  </head>
<body>
  <p>
    <svg width="300" height="200">
        <circle cx="100" cy="100" r="5" fill="red" />
        <circle cx="50" cy="70" r="5" fill="red" />
    </svg>
  </p>
  <script>
     var drag = d3.behavior.drag()
      .on("drag", function () {
         d3.select(this).attr("cx", d3.event.x)
                        .attr("cy",d3.event.y); 
         });
    d3.selectAll('circle').call(drag);
  </script>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

这是因为谷歌翻译扩展。禁用它可以解决问题。

答案 1 :(得分:0)

对象不包含该方法。这将“匀场”。

SVGAnimatedString.prototype.indexOf = function () { return this.baseVal.indexOf.apply(this.baseVal, arguments); }