検索
ホームページウェブフロントエンドCSSチュートリアルjQuery AddClass() が SVG 要素で機能しないのはなぜですか?それを修正するにはどうすればよいですか?

Why Doesn't jQuery AddClass() Work on SVG Elements, and How Can I Fix It?

jQuery SVG クラスの操作の問題

jQuery SVG 操作の領域では、SVG 要素にクラスを追加または削除する際に、ユーザーが困難に遭遇することがあります。この問題を引き起こす一般的なシナリオは、jQuery で SVG オブジェクトをターゲットにし、.addClass() メソッドを利用しようとすることです。

提供されているコード スニペットは問題を強調しています:

<rect class="jimmy"></rect>
$(".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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Draggin&#039;ドロップピン&#039;反応でDraggin&#039;ドロップピン&#039;反応でApr 17, 2025 am 11:52 AM

React Ecosystemは、すべてがドラッグアンドドロップの相互作用に焦点を合わせている多くのライブラリを提供します。 React-Dnd、React-Beautiful-Dnd、

高速ソフトウェア高速ソフトウェアApr 17, 2025 am 11:49 AM

最近、高速ソフトウェアについて素晴らしい相互接続されたことがいくつかありました。

バックグラウンドクリップ付きのネストされたグラデーションバックグラウンドクリップ付きのネストされたグラデーションApr 17, 2025 am 11:47 AM

バックグラウンドクリップをすべて頻繁に使用すると言うことができます。私は、日々のCSS作業ではほとんど使用されていない&#039; dを賭けています。しかし、私はステファン・ジュディスの投稿でそれを思い出しました、

ReackAnimationFrameを使用してReact Hooksを使用しますReackAnimationFrameを使用してReact Hooksを使用しますApr 17, 2025 am 11:46 AM

RequestAnimationFrameでアニメーション化するのは簡単なはずですが、Reactのドキュメントを徹底的に読んでいない場合は、おそらくいくつかのことに遭遇するでしょう

ページの上部にスクロールする必要がありますか?ページの上部にスクロールする必要がありますか?Apr 17, 2025 am 11:45 AM

おそらく、それをユーザーに提供する最も簡単な方法は、要素上のIDをターゲットにするリンクです。だから...

Best(GraphQL)APIはあなたが書くものですBest(GraphQL)APIはあなたが書くものですApr 17, 2025 am 11:36 AM

聞いてください、私はGraphQLの専門家ではありませんが、私はそれで働くことを楽しんでいます。フロントエンド開発者としてデータを公開する方法はかなりクールです。メニューのようなものです

毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーターApr 17, 2025 am 11:26 AM

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

ボーダー半径を保存しながら箱を拡張するためのさまざまな方法ボーダー半径を保存しながら箱を拡張するためのさまざまな方法Apr 17, 2025 am 11:19 AM

私は最近、Codepenの興味深い変化に気づきました。ホームページにペンをホバリングすると、丸い角が背面に拡大する長方形があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール