2013-02-15 3 views
2
내가 SVG 요소에 ID를 설정

설정 사용자 지정 attrribute (라파엘)

var circle = paper.circle(x, y, r); 
circle.node.id = 'circle-id'; 

모든 것이 잘 내가이 같은 예상 된 결과를 볼 수있을 때 디버거와 문서를 검색 :

<circle cx="320" cy="240" r="4" fill="none" stroke="#000" id="circle-id" /> 

는 그럼 난 document.getElementById 방법을 통해 또는 jQuery를 통해 ID로이 요소를 얻을 수 있어요. 그러나 다른 속성을 추가하는 것은 실패합니다. 내가 속성 custom 추가하려고하면 :

circle.node.custom = 'custom-attr'; 

을 나는 효과를 볼 수 없습니다.

우리가 어떻게 임의의 속성을 추가하는 라파엘과를 사용하여 SVG 요소에 추가 할 수있는 속성의 어떤 종류의?

+0

은 왜 맞춤 ATTR를 설정 하시겠습니까? – j0hnstew

+0

@stewbydoo, 일부 html 요소가 일부 svg 요소와 통신하기를 원했습니다. 예를 들어 일부 div mouseover에서 일부 svg 요소의 배경을 변경하고 mouseout에서 다시 변경합니다. 그러나'$ ('elem-elector'). attr ('fill', '')'로 다시 변경하는 것은 실패했습니다. svg 요소에'original-color' 속성을 저장하면이 기능을 쉽게 구현할 수 있습니다. – ivkremer

+0

자신 만의 구현을 롤링하는 대신 : hover 의사 클래스를 사용하는 것이 훨씬 나을 것 같네요. http://www.quirksmode.org/css/hover.html –

답변

4

nodeid 빠르게 읽기/값을 작성하는 요소의 표준 속성입니다, DOM 요소입니다. setAttribute 메소드를 사용하여 비표준 속성을 설정하십시오.

circle.node.setAttribute('custom', 'custom-attr'); 
+1

jQuery를 사용하여 지속적으로 코딩하면 DOM을 실제로 구성하는 방법에 대해 생각하게하지 않았습니다. 고맙습니다! – ivkremer

+1

수업 : 실제 자바 스크립트에 대해 자세히 알아보기 jQuery는 성배가 아닙니다. –

+1

감사합니다. –

관련 문제