Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menghentikan kod Javascript daripada menukar hsl kepada rgb secara automatik

Saya mempunyai kod ini di mana saya menetapkan warna pada objek dan kemudian menggunakan syarat untuk menyemak sama ada item tersebut telah dipilih. Walau bagaimanapun, syarat itu tidak berfungsi kerana javascript (atau penyemak imbas) menukar hsl kepada rgb, yang menghalang sebarang pemadanan daripada berlaku. Saya tertanya-tanya sama ada terdapat cara untuk menghalang tingkah laku ini dalam JS (atau penyemak imbas), dan jika tidak, mengapa ia berlaku?

function selecionarNota() {

    if (this.style.backgroundColor == 'hsl(25, 97%, 53%)') { 
        for (let i = 0; i < numAvaliacao.length; i++) {
            numAvaliacao[i].style.backgroundColor = 'hsl(213, 19%, 21%)';
            numAvaliacao[i].style.color = 'hsl(217, 12%, 63%)';
        }

    } else {

        for (let i = 0; i < numAvaliacao.length; i++) {
            numAvaliacao[i].style.backgroundColor = 'hsl(213, 19%, 21%)';
            numAvaliacao[i].style.color = 'hsl(217, 12%, 63%)';
        }

        this.style.backgroundColor = 'hsl(25, 97%, 53%)';
        this.style.color = 'white';

    }
}

Saya menyedari bahawa saya boleh menyelesaikan masalah ini dengan menggunakan rgb dalam kod saya. Tetapi saya benar-benar ingin memahami mengapa ini berlaku.

P粉806834059P粉806834059183 hari yang lalu347

membalas semua(1)saya akan balas

  • P粉076987386

    P粉0769873862024-04-01 10:48:37

    Ini berlaku kerana ia adalah standard penyemak imbas.

    Saya mengesyorkan membuat kelas css dengan warna ini dan menggunakan kelas ini dalam javascript. Lepas tu boleh guna element.classList.contains(class) dalam keadaan.

    balas
    0
  • Batalbalas