Closed fatihmeh closed 5 years ago
Tüm seçenekleri baştan sona JS ile oluşturup kontrollerini basit bir "if" düzeniyle mi sağlayalım yoksa soru ve ve olası cevapları HTML içerisinde, liste gibi yapılara mantıksal biçimde yerleştirip JS'yi bunların gösteriminde mi kullanalım? İkinci yöntem ile ayrılan yollar ve cevaplar listeler üzerinden belirlenirken birinci yöntemde oluşturma ve yönlendirme tamamen JS üzerinden olacak. İkinci yöntemde yapı bir kez kurulduğu zaman ekstra cevaplarla senaryoyu genişletmek ve farklı konulara uyarlamak daha kolay olur. Birincisinde kodu sürekli düzenlemek gerekir.
Js ile seçimler sonrası girdilerden geleni toplayıp sonucu gösterebiliriz. Bir kere kuruncu düzeni sonrasında pek değiştirme isteğinde bulunmayız diye düşünüyorum.
Seçimleri alabileceğimiz başka bir dosya yapma ihtimalimiz var mı? Json dosyasından filan çekme gibi.
Evet yapabiliriz. Kullanımı sanırım Array gibi olur.
Json dosyası hazırlıyordum fakat bunu okumayı anlatmaya uğraşmak yerine direk koda seçenekleri yazmak daha efektif olabilir.
Son düzenlemede onun ufak bir örneğini yaptım. Sonuçları bu şekilde geliyor.
Direkt func dosyası içinde array olarak da kullanabiliriz ama böyle daha düzenli görünüyor. Hem ayrı dillerdeki versiyonunu hazırlerken kullanıcıya hepsini tek seferde yükletmek zorunda kalmayız.
Asıl kullanım şekline ait yapıyı oluşturmak için çalışmalara başladım. Tüm soruları, cevapları ve bunlarla ilgili diğer verileri alabiliyoruz. Sıra bu verileri döngü yerine sadece gerektiği zaman gösterebilmekte. Geçici olarak döngüyü iptal ettim ve seçtiğim bir adet sorunun görünmesini sağladım. Elementleri oluştururken etkileşime geçmek için kullanmayı planladığım yeni etiket özelliklerini ekledim.
Attığın Mozilla sayfasını incelerken kullanımını görüp araştırdım. HTML 5'de etiketlere özel özellikler tanımlayabiliyormuşuz. Böylece id
veya class
kısmını gereksiz yere meşgul etmek zorunda kalmayacağız. Daha anlamlı ve erişmesi kolay isimler kullanabileceğiz.
data-question
data-answer
data-go
Zaten daha önceden cevaplar başka soruya mı yoksa sonuca mı götürüyor ekrana yazdırmıştık. Eklediğim resim de de hâlâ yazıyor. Şimdi onun yerine bu değerleri data-go özelliğinin içine ekledim. Eğer birden fazla sonuç varsa da virgülle ayırmasını sağladım ki daha sonra kullanırken o değerleri ayrıştırıp kullanabilelim. Yoksa hepsini birleşik biçimde tutardı.
Sonrasında ufak bir deneme hazırladım. data-answer özelliğine ait tüm li etiketlerini seçtim. Bunlardan birisine tıklandığı zaman ilgili cevabın data-go değerini konsola yazdırdım.
Sonuç: Bunu mevcut soruyu silip, sonraki aşamaya geçerken kullanacağız.
Geçen gün sorduğum şeyde aynı şekilde kullanım olduğunu gördüm.
Kod aşamasını buradan devam ettirelim.
https://github.com/fatihmeh/Choose-Your-Operating-System/tree/branch-kod
Sitenin altyapısı Github Pages ile yapılacağını düşünerek html ve js kullanmak durumundayız. Detayları burada tartışabiliriz.