jQuery AddClass() が SVG 要素で機能しないのはなぜですか?それを修正するにはどうすればよいですか?
jQuery SVG クラスの操作の問題
jQuery SVG 操作の領域では、SVG 要素にクラスを追加または削除する際に、ユーザーが困難に遭遇することがあります。この問題を引き起こす一般的なシナリオは、jQuery で SVG オブジェクトをターゲットにし、.addClass() メソッドを利用しようとすることです。
提供されているコード スニペットは問題を強調しています:
<rect class="jimmy">
$(".jimmy").click(function() { $(this).addClass("clicked"); });
jQuery と SVG の統合はイベント処理に関しては問題なく機能しますが、クラス操作は失敗したままです。
基盤原因
根本的な原因は、v3 より前のバージョンの jQuery での SVG クラス操作のサポートが限定的であることにあります。この問題は、jQuery が HTML 要素とは異なる方法で SVG 要素を処理するという事実に起因します。
解決策
この問題に対処するためのいくつかの解決策が存在します。
- jQuery v3 を採用: jQuery v3 以降ではこの制限が解決され、クラスのシームレスな追加と削除が可能になりました。 .addClass() と .removeClass() を使用して SVG 要素から取得します。
- Adopt Vanilla JavaScript: 最新のブラウザーは、SVG 要素でのクラス操作のネイティブ サポートを提供します。 classList.add() メソッドと classList.remove() メソッドを利用すると、jQuery に代わる信頼性の高い代替手段が提供されます。
- jQuery の .attr() メソッドを利用する: jQuery を使用したい場合は、次のことを検討してください。 .attr() メソッドを使用してクラス属性を変更する
// Add class using .attr() $("#item").attr("class", "oldclass newclass"); // Remove class using .attr() $("#item").attr("class", "oldclass");
- .setAttribute() を使用してバニラ JavaScript を利用する: または、バニラ JavaScript を使用してクラス属性を操作することもできます。
// 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

インラインテンプレートディレクティブにより、既存のWordPressマークアップに対する進行性の強化として、リッチVUEコンポーネントを構築できます。

PHPテンプレートは、多くの場合、サブパーコードを促進するために悪いラップを取得しますが、そうである必要はありません。 PHPプロジェクトが基本を実施する方法を見てみましょう

私たちは常にWebをよりアクセスしやすくしたいと考えています。色のコントラストは単なる数学なので、SASSはデザイナーが見逃したかもしれないエッジケースをカバーするのに役立ちます。
