2016-09-26 22 views
1

ネイティブSVG関数を呼び出そうとしていますが、ブラウザがrectパラメータがSVGRectではないと不平を言っています。私は何か違いがあるとは確信していませんが、SVGRectはインターフェイスのようですが、それでもまだノードを受け入れるべきではありませんrectパラメータ1の型が 'SVGRect'ではありません

HTML

<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="884" style="opacity: 1;"> 
<rect class="overlay" width="1920" height="884"></rect> 
</svg> 

JS

作成:

var svg = d3.select('body') 
     .append("svg") 
      .attr('xmlns',d3.ns.prefix.svg) 
      .attr("width", width) 
      .attr("height",height) 

    svg.append('svg:rect') 
     .attr('class','overlay') 
     .attr("width", width) 
     .attr("height",height) 

以降:

var svg = d3.select('svg').node() 
var rect = d3.select('rect.overlay').node(); 
var intersect = svg.checkIntersection(this,rect) 

上のコードはエラーUncaught TypeError: Failed to execute 'getEnclosureList' on 'SVGSVGElement': parameter 1 is not of type 'SVGRect'.

+1

SVGRectとrect要素は全く異なるものです。前者はデータ所有者だけでレンダリングできません。後者はレンダリングされるマークアップオブジェクトです。 APIが他のAPIを予期しているときには、それを混在させることはできません。 –

+0

説明をありがとう。私の 'rect'要素のプロパティを反映する' SVGRect'オブジェクトへの参照をどのように取得するのですか? –

答えて

関連する問題