CodeBlanks Logo Icon CodeBlanks

Görev ekleme

JavaScript kursu · Orta seviye · Ders 51/134

addEventListener ve click olayı ile input değerini alıp görev eklersin.

Giriş değerini okumak

Kullanıcının yazdığı görev metnini almak için input.value özelliğini kullanırız. Bu özellik hem okur hem yazar: atama yaparak giriş alanını temizleyebiliriz (input.value = "").

Bir addTask fonksiyonu tanımlayacağız. Fonksiyon önce input.value ile metni okur; boşsa hiçbir şey yapmaz. Boş değilse yeni bir li öğesi oluşturur, metni ayarlar ve listeye ekler. Son olarak giriş alanını temizler.

Bu fonksiyonu addButton.addEventListener("click", addTask) ile düğmeye bağlayacağız.

Düğmeye tıklama bağlamak

Fonksiyonu yazdıktan sonra onu düğmenin click olayına bağlamalıyız. addEventListener metodu bir olay türü ve bir işlev alır. addButton.addEventListener("click", addTask) çağrısı her tıklamada addTask fonksiyonunu çalıştırır.

Fonksiyonu doğrudan çağırmıyoruz (parantez olmadan addTask yazıyoruz); çağırma işini tarayıcı yapar. Bu, callback düzenidir: bir fonksiyonu başka bir yere çağırması için bırakırız.

Boş metin eklememek için if (text === "") return; ile erken çıkış yapacağız.

Uygulama Görev ekleme işlevini bağla

Önceki dersin çözümünün üzerine devam et. Bir addTask fonksiyonu yaz: input.value ile metni oku, boşsa çık, değilse createElement("li") ile öğe oluştur, textContent ata, list.appendChild ile ekle ve input.value'yu temizle. Sonra addButton.addEventListener("click", addTask) ile düğmeye bağla.

Örnek çözümü göster
function addTask() {...} yaz, içine input.value oku, boşsa çık, li oluştur ve list.appendChild ekle, sonra input.value'yu temizle. En son addButton.addEventListener('click', addTask) çağrısı ekle.

Örnek çözüm:
// Yapılacaklar uygulaması
const app = document.getElementById("app");
const title = document.createElement("h1");
title.textContent = "Yapılacaklar";
app.appendChild(title);

const input = document.createElement("input");
input.placeholder = "Yeni görev";
const addButton = document.createElement("button");
addButton.textContent = "Ekle";
const list = document.createElement("ul");

app.appendChild(input);
app.appendChild(addButton);
app.appendChild(list);

function addTask() {
  const text = input.value;
  if (text === "") return;
  const item = document.createElement("li");
  item.textContent = text;
  list.appendChild(item);
  input.value = "";
}

addButton.addEventListener("click", addTask);

Kendini test et

  1. input değerini oku

    const text = ____;
    Cevabı göster
    const text = input.value;
  2. addButton.addEventListener('click', addTask) çağrısında addTask neden parantezsiz yazılır?

    addButton.addEventListener("click", addTask);
    • Çünkü fonksiyonun kendisini tarayıcının çağırması istenir
    • Çünkü parantez yazmak sözdizimi hatasıdır
    • Çünkü addTask bir değişken değil fonksiyondur
    • Çünkü tıklama sayısı önemli değildir
    Cevabı göster

    Çünkü fonksiyonun kendisini tarayıcının çağırması istenir — Doğru! Parantezsiz yazınca fonksiyonu tarayıcı çağırır.

  3. addTask adımlarını eşleştir

    input.value
    Metni oku
    return
    Boşsa çık
    createElement("li")
    Öğe oluştur
    list.appendChild
    Listeye ekle

Orta seviye bölümündeki tüm dersler