Dalam bidang manipulasi SVG jQuery, pengguna kadangkala menghadapi kesukaran menambah atau mengalih keluar kelas daripada elemen SVG. Senario biasa yang mencetuskan masalah ini ialah menyasarkan objek SVG dengan jQuery dan cuba menggunakan kaedah .addClass().
Coretan kod yang disediakan menyerlahkan isu:
<rect class="jimmy">
$(".jimmy").click(function() { $(this).addClass("clicked"); });
Walaupun integrasi jQuery dan SVG berfungsi dengan sempurna untuk pengendalian acara, kelas manipulasi tetap tidak berjaya.
Punca utama terletak pada sokongan terhad untuk manipulasi kelas SVG dalam versi jQuery sebelum v3. Isu ini berpunca daripada fakta bahawa jQuery mengendalikan elemen SVG secara berbeza berbanding dengan elemen HTML.
Beberapa penyelesaian hadir sendiri untuk menangani masalah ini:
// 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");
Atas ialah kandungan terperinci Mengapa jQuery AddClass() Tidak Berfungsi pada Elemen SVG, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!