2016-09-26 2 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' 객체에 대한 참조를 얻으려면 어떻게해야합니까? –

답변

관련 문제