在 jQuery SVG 操作領域,使用者偶爾會遇到從 SVG 元素新增或移除類別的困難。觸發此問題的常見場景是使用 jQuery 定位 SVG 物件並嘗試使用 .addClass() 方法。
提供的程式碼片段突顯了這個問題:
<rect class="jimmy">
$(".jimmy").click(function() { $(this).addClass("clicked"); });
雖然 jQuery 和 SVG 整合對於事件處理來說完美無缺,但類別操作仍然不成功。
根本原因在於 v3 之前的 jQuery 版本對 SVG 類別操作的支援有限。此問題源自於以下事實:與 HTML 元素相比,jQuery 處理 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中文網其他相關文章!