Çözüldü JavaScript Radio Buton Projesi

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

01yildizmustafa

Centipat
Katılım
4 Eylül 2022
Mesajlar
63
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Kod:
<script>

    var labels = document.querySelectorAll("label");

    labels.forEach(function (label) {

        label.addEventListener("click", function () {
            label.style.backgroundColor = "red";
        })
    })

</script>


5 tane radio butonum var.
Üzerlerine tıklanınca arka plan değişiyor.
Buraya kadar tamam.
Fakat benim istediğim sadece üzerine tıklananın arka planı değişmesi.

Örnek:
5 tane radio butondan herhangi birine tıkladım, rengi değişti.
Şimdi de başka birine tıkladım.
İlk tıkladığımın eski haline dönmesi.
Yeni tıkladığımınsa renginin değişmesi.


Ben geldiğim noktada 'önce tıkladıklarımı' eski haline çeviremiyorum.

İSTEDİĞİM:
Sadece seçili olan radio butonun farklı renkte olması.


GitHub:
Kodlar burada
 

Dosya Ekleri

  • a.png
    a.png
    10,1 KB · Görüntüleme: 32
Son düzenleme:
Çözüm
Butona tklandığında foreach() ile tüm butonları varsayılan hale getirin, daha sonra tıklanılan butonun rengini değiştirin veya butona tıklandığında rengi değişen butonu querySelector ile yakalayıp eski haline getirin sonra tıklanan butonun rengini değiştirin.
Butona tklandığında foreach() ile tüm butonları varsayılan hale getirin, daha sonra tıklanılan butonun rengini değiştirin veya butona tıklandığında rengi değişen butonu querySelector ile yakalayıp eski haline getirin sonra tıklanan butonun rengini değiştirin.
 
Son düzenleme:
Çözüm
Butona tklandığında foreach() ile tüm butonları varsayılan hale getirin, daha sonra tıklanılan butonun rengini değiştirin veya butona tıklandığında rengi değişen butonu
@Yuspro

Kodun son hali:

Kod:
<script>
        var labels = document.querySelectorAll("label");


        labels.forEach(function(label) {

            label.addEventListener("click", function() {

                labels.forEach (function(label) {
                    label.style.backgroundColor = "purple";
                })

                label.style.backgroundColor = "red";
            })
        })
    </script>


Tam olarak ne demek istediğinizi anlamadım ama dediklerinizden şunu çıkarttım:
Tıklanınca asıl istediğim olaydan önce sıfırlama işlemi yapmak.

Ben bu çözüme kadar şu çözüm yollarını denedim:

  1. İf, else' ler ile checked özelliğini kontrol edip, eğer checked olduysa böyle yap, yok eğer checked değilse şöyle yap.
  2. Butonların birbirleri arasında ayrım oluşması için tıklananı bir diziye at. Dizideki elemana ayrı işlem uygula, dizi dışındakilere ayrı işlem uygula.
Bu yollar beni istediğim çözüme ulaştırmıyordu.
Aklıma asıl olaydan önce diğerleri için sıfırlama işlemi yapmak gelmemişti.
Çözüme ulaştım, sorunu çözdüm. 😎
Teşekkürler dostum! 👍🙂
 
@Yuspro

Kodun son hali:

Kod:
<script>
        var labels = document.querySelectorAll("label");


        labels.forEach(function(label) {

            label.addEventListener("click", function() {

                labels.forEach (function(label) {
                    label.style.backgroundColor = "purple";
                })

                label.style.backgroundColor = "red";
            })
        })
    </script>


Tam olarak ne demek istediğinizi anlamadım ama dediklerinizden şunu çıkarttım:
Tıklanınca asıl istediğim olaydan önce sıfırlama işlemi yapmak.

Ben bu çözüme kadar şu çözüm yollarını denedim:

  1. İf, else' ler ile checked özelliğini kontrol edip, eğer checked olduysa böyle yap, yok eğer checked değilse şöyle yap.
  2. Butonların birbirleri arasında ayrım oluşması için tıklananı bir diziye at. Dizideki elemana ayrı işlem uygula, dizi dışındakilere ayrı işlem uygula.
Bu yollar beni istediğim çözüme ulaştırmıyordu.
Aklıma asıl olaydan önce diğerleri için sıfırlama işlemi yapmak gelmemişti.
Çözüme ulaştım, sorunu çözdüm. 😎
Teşekkürler dostum! 👍🙂
Programlamada hiçbir zaman tek bir çözüm yolu olmuyor. Ben size iki farklı çözüm yöntemi önerdim. Birisi tüm butonları varsayılan duruma getirip ardından tıklanan butonu değiştirmek, siz zaten onu uygulamışsınız. Diğerinde ise rengi değiştirilen butonu (sizin örneğinizde kırmızı butonu) querySelector ile seçip varsayılan hale getirmek ardından tıklanan butonu değiştirmekti ama doğru ifade edememişim galiba :)
 

Geri
Yukarı