JavaScript · 6/8
Web'e özel: butona tıklama
DOM seçimi, durum ve olay dinleyicisini çalışan bir düğmede birleştirmek.
Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.
Bu sayfada · 9 başlık
Başlamadan önce
Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.
Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

Videoyla adım adım izle
Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.
Video bölümleri ve tam metin
Web'e özel: butona tıklama
DOM seçimi, durum ve olay dinleyicisini çalışan bir düğmede birleştirmek.
Kavramı kur
DOM, tarayıcının HTML belgesinden oluşturduğu programlanabilir yapıdır. querySelector uygun öğeyi bulur; bulamazsa null döndürür. Düğmenin kimliği ile seçicinin eşleşmesi gerekir. Kodu öğe oluşturulduktan sonra çalıştırmak için bu küçük örnekte script bölümünü düğmenin altına yerleştiriyoruz.
Neden böyle çalışıyor?
Bir olay dinleyicisi, tıklama gerçekleştiğinde ne yapılacağını tanımlar. Fonksiyonu dinleyiciye vermek ile o anda çağırmak aynı şey değildir. sayi, tıklamalar arasında saklanan durumdur; her olayda bir artar ve textContent ile arayüze yansıtılır. Metin içeriği için innerHTML kullanmak gerekmez.
Çalışma sırası
Kullanıcı etkileşimini yalnızca fareye göre düşünme. Gerçek button öğesi klavyeyle de kullanılabilir ve doğru temel semantiğe sahiptir. Düğmeyi Tab ile seçip Enter veya Space ile dene. Bir div üzerine tıklama koymak aynı davranışları otomatik sağlamaz.
İkinci örnek · 1
querySelector doğru id ile tek düğmeyi seçer. Kodun tamamı yazılı derste bulunur.
Kod
<button id="sayac">0 kez tıklandı</button>
<script>
const dugme = document.querySelector("#sayac");
let sayi = 0;
dugme.addEventListener("click", () => {
sayi += 1;
dugme.textContent = sayi + " kez tıklandı";
});
</script>Beklenen sonucu oku
textContent yeni durumu düğme metnine güvenli biçimde yansıtır.
Beklenen çıktı: Başlangıçta 0; her tıklamada 1, 2, 3 kez tıklandı.
Bir değeri sen değiştir
Düğmeye üç kez bas; değerleri gözlemle. Bir sıfırlama düğmesi ekle ve aynı durumu 0 yap.
Hata nereden gelir?
Seçici yanlışsa null üzerinde metot çağırırsın; id ve çalışma sırasını kontrol et.
Kendi çözümünü kur
Fare kullanmadan her iki düğmeyi de çalıştır; odak göstergesini kaybetme. Sıfırla düğmesinin olayında hem sayi değerini hem görünen metni güncelle.
Çözüm varyasyonu · 1
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
Kod
<button id="artir">Artır</button><button id="sifirla">Sıfırla</button><p id="deger">0</p>
<script>
let sayi = 0;
const sonuc = document.querySelector("#deger");
document.querySelector("#artir").addEventListener("click", () => { sonuc.textContent = ++sayi; });
document.querySelector("#sifirla").addEventListener("click", () => { sayi = 0; sonuc.textContent = sayi; });
</script>Kendini kontrol et
Sayaç neden olay fonksiyonunun dışında tanımlanır? Yanıt: Tıklamalar arasında değerini koruması için; her olayda yeniden başlatılmaması gerekir.
Beklenen çıktı: Artır sayacı artırır; Sıfırla hem durumu hem görünümü 0 yapar.
Konu anlatımı
DOM, tarayıcının HTML belgesinden oluşturduğu programlanabilir yapıdır. querySelector uygun öğeyi bulur; bulamazsa null döndürür. Düğmenin kimliği ile seçicinin eşleşmesi gerekir. Kodu öğe oluşturulduktan sonra çalıştırmak için bu küçük örnekte script bölümünü düğmenin altına yerleştiriyoruz.
Bir olay dinleyicisi, tıklama gerçekleştiğinde ne yapılacağını tanımlar. Fonksiyonu dinleyiciye vermek ile o anda çağırmak aynı şey değildir. sayi, tıklamalar arasında saklanan durumdur; her olayda bir artar ve textContent ile arayüze yansıtılır. Metin içeriği için innerHTML kullanmak gerekmez.
Kullanıcı etkileşimini yalnızca fareye göre düşünme. Gerçek button öğesi klavyeyle de kullanılabilir ve doğru temel semantiğe sahiptir. Düğmeyi Tab ile seçip Enter veya Space ile dene. Bir div üzerine tıklama koymak aynı davranışları otomatik sağlamaz.
İlk örneği oku ve dene
Web'e özel: butona tıklama
JavaScript'in asıl gücü web sayfasıyla konuşmasıdır. Bu kod sayfadaki butonu bulur ve tıklanınca bir mesaj gösterir. Bunu bir .html dosyasına yapıştırıp açabilirsin.
<button id="buton">Bana tıkla</button>
<script>
document.getElementById("buton").addEventListener("click", () => {
alert("Merhaba! 👋");
});
</script>
▶ Sonuç
Butona tıklayınca ekranda "Merhaba! 👋" yazan bir uyarı kutusu açılır.
Adım adım neden böyle çalışıyor?
- querySelector doğru id ile tek düğmeyi seçer.
- sayi başlangıç durumudur; dinleyicinin dışında tutulur.
- Olay gerçekleşince sayaç artar.
- textContent yeni durumu düğme metnine güvenli biçimde yansıtır.
İkinci çözümlü örnek
DOM seçimi, durum ve olay dinleyicisini çalışan bir düğmede birleştirmek.
<button id="sayac">0 kez tıklandı</button>
<script>
const dugme = document.querySelector("#sayac");
let sayi = 0;
dugme.addEventListener("click", () => {
sayi += 1;
dugme.textContent = sayi + " kez tıklandı";
});
</script>
▶ Sonuç
Başlangıçta 0; her tıklamada 1, 2, 3 kez tıklandı.
Kolaydan zora sen dene
- Düğmeye üç kez bas; değerleri gözlemle.
- Bir sıfırlama düğmesi ekle ve aynı durumu 0 yap.
- Fare kullanmadan her iki düğmeyi de çalıştır; odak göstergesini kaybetme.
İpucunu aç
Sıfırla düğmesinin olayında hem sayi değerini hem görünen metni güncelle.
Üç görevin açıklamalı çözümünü oku
- Üç basış sonrasında sayaç 3 olmalıdır; başlangıç 0’dır.
- Sıfırlama olayında hem sayi değerini 0 yap hem Text/DOM gösterimini aynı durumdan güncelle. Çözüm varyasyonunda iki düğmeli tam örnek var.
- Tab ile düğmeyi seç; Enter veya Space olayı çalıştırmalıdır. Görünür odak işaretini CSS ile kapatma.
Bir çözüm varyasyonu gör
Çözüm varyasyonu
Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.
<button id="artir">Artır</button><button id="sifirla">Sıfırla</button><p id="deger">0</p>
<script>
let sayi = 0;
const sonuc = document.querySelector("#deger");
document.querySelector("#artir").addEventListener("click", () => { sonuc.textContent = ++sayi; });
document.querySelector("#sifirla").addEventListener("click", () => { sayi = 0; sonuc.textContent = sayi; });
</script>
▶ Sonuç
Artır sayacı artırır; Sıfırla hem durumu hem görünümü 0 yapar.
Yaygın hata ve çözümü
- Seçici yanlışsa null üzerinde metot çağırırsın; id ve çalışma sırasını kontrol et.
- Sayacı dinleyicinin içinde tekrar 0 yaparsan her basışta 1 görürsün; durumu dışarıda tut.
Kendini değerlendir
Ezberlemeden açıklayabiliyor musun?
Sayaç neden olay fonksiyonunun dışında tanımlanır?
Açıklamalı yanıt
Tıklamalar arasında değerini koruması için; her olayda yeniden başlatılmaması gerekir.
Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.
Kaynak ve çalışma ortamı
Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.
Resmî dil belgeleriBu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.