jQuery SVG 조작 영역에서 사용자는 때때로 SVG 요소에서 클래스를 추가하거나 제거하는 데 어려움을 겪습니다. 이 문제를 유발하는 일반적인 시나리오는 jQuery로 SVG 개체를 대상으로 하고 .addClass() 메서드를 활용하려고 시도하는 것입니다.
제공된 코드 조각은 문제를 강조합니다.
<rect class="jimmy">
$(".jimmy").click(function() { $(this).addClass("clicked"); });
jQuery와 SVG 통합은 이벤트 처리에 완벽하게 작동하지만 클래스 조작은 성공하지 못합니다.
근본 원인은 v3 이전 버전의 jQuery에서 SVG 클래스 조작에 대한 제한된 지원에 있습니다. 이 문제는 jQuery가 HTML 요소와 비교하여 SVG 요소를 다르게 처리한다는 사실에서 비롯됩니다.
이 문제를 해결하기 위해 여러 솔루션이 제시됩니다.
// Add class using .attr() $("#item").attr("class", "oldclass newclass"); // Remove class using .attr() $("#item").attr("class", "oldclass");
// Add class using .setAttribute() var element = document.getElementById("item"); element.setAttribute("class", "oldclass newclass"); // Remove class using .setAttribute() element.setAttribute("class", "oldclass");
위 내용은 jQuery AddClass()가 SVG 요소에서 작동하지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!