Rumah >hujung hadapan web >tutorial css >Mengapa jQuery Tidak Memanipulasi Kelas SVG, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa jQuery Tidak Memanipulasi Kelas SVG, dan Bagaimana Saya Boleh Membetulkannya?

DDD
DDDasal
2024-12-22 00:52:35418semak imbas

Why Doesn't jQuery Manipulate SVG Classes, and How Can I Fix It?

jQuery SVG: Mengatasi Halangan Manipulasi Kelas

Menggabungkan jQuery ke dalam operasi SVG anda boleh menyelaraskan pembangunan. Walau bagaimanapun, perangkap biasa yang dihadapi ialah ketidakupayaan untuk menambah atau mengalih keluar kelas daripada elemen SVG. Mari kita mendalami isu ini dan meneroka penyelesaian.

Masalahnya:

Apabila cuba memanipulasi kelas dalam elemen SVG menggunakan jQuery, ia sering gagal. Sebagai contoh, pertimbangkan kod berikut:

<svg>
  <rect>

Dalam contoh ini, kod jQuery harus menambah kelas "diklik" pada segi empat tepat apabila diklik. Walau bagaimanapun, ia gagal berbuat demikian.

Penyelesaian:

1. Gunakan JQuery 3 atau Kemudian:

Versi JQuery sebelum 3 mengalami kesukaran apabila bekerja dengan kelas SVG. Walau bagaimanapun, isu ini telah diselesaikan dalam JQuery 3 dan ke atas. Menaik taraf kepada versi JQuery terkini sepatutnya menyelesaikan masalah.

2. Gunakan JavaScript Vanila:

Jika anda memilih untuk tidak bergantung pada JQuery, anda boleh memanipulasi kelas SVG secara langsung menggunakan JavaScript vanila. Kaedah classList.add() menawarkan cara yang mudah untuk mencapai ini:

var element = document.getElementById("p5");
element.classList.add("clicked");

3. Manfaatkan Kaedah .attr():

Pilihan lain ialah menggunakan kaedah .attr(), yang serasi dengan JavaScript jQuery dan vanila:

// jQuery
$("#p5").attr("class", "clicked");

// Vanilla JavaScript
element.setAttribute("class", "clicked");

Dengan menggunakan salah satu daripada penyelesaian ini, anda boleh memanipulasi kelas dengan berkesan dalam elemen SVG anda menggunakan jQuery atau JavaScript vanila, mengatasi yang sebelumnya had.

Atas ialah kandungan terperinci Mengapa jQuery Tidak Memanipulasi Kelas SVG, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn