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 中国語 Web サイトの他の関連記事を参照してください。