Kubilay Kahil
YazarKubilay Kahil
3 dakika okuma süresi
Eki 16, 2019

To Do List Yapımı


  Bu yazıda Javascript kullanarak bir To Do listesi oluşturmayı anlatmaya çalışacağım.

HTML ve CSS ile vakit kaybetmemek için, buradan kodları indirebilir veya göz gezdirebilirsiniz.

  

 Oluşturacağımız To Do list, bir input üzerinden yazıyı alıcak. Ve HTML içerisindeki etiketlere gömecek. Solunda bulunan bir checkbox ile opacity değerini değiştireceğiz. Sağında bulunan bir small etiketi ile de, oluşturulma tarihini ekrana bastıracağız:

                                                

  HTML ve CSS kodlarını gözden geçirdiysek, yavaştan başlayalım.. Input elementime ulaşmak için querySelector() ile bir değişkene atıyorum. Input elementinin hemen yanındaki buton ile de aynı işlemi gerçekleştirmek istiyorum:

var add_item = document.querySelector("input");

var button_add_item = document.querySelector("span");

Input içerisinde enter tuşuna basıldığında, fonksiyon çağırıyorum:

add_item.onkeypress = function(add){

}

Klavye girişlerini kontrol etmek için, which methodunu kullanicam:

add_item.onkeypress = function(add){

  if(add == 13){

    

      }

}

  Şimdi checkbox içerisine girilen değerleri almak için hazırız. HTML kodumuzun içerisine gömülecek etiketleri oluşturalım. Etiket oluşturmak için, createElement methodunu kullanıyorum. Document objesinin altında bulunduğu için, document.createElement(“etiket adı”) şeklinde oluşturuyorum:

//create element

var todo_element = document.createElement("LI");

var in_span = document.createElement("SPAN");

var in_small = document.createElement("SMALL");

//create element input checkbox and value

var in_input = document.createElement("INPUT");

in_input.setAttribute("type", "checkbox");

in_input.setAttribute("value", "x");

  Görevler oluşturulurken, hangi zamanda oluşturuduklarını da yazdırmak istiyorum. Bunun için, date() objesinden faydalanıyorum:

//create date items

var date = new Date();

var now = date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear();

Şimdi iki farklı değerimi(input’dan gelen ve tarih) bir değişken içerisine kaydedicem. Bunun için createTextNode() methodu yetişiyor. Ayrıca input elementinin içerisinde işlem yaptığım için, this nesnesini de kullanabilicem:

//in input and date value

var create_time_item = document.createTextNode(now);

var item_val = document.createTextNode(this.value);

Neredeyse bitti. Şimdi oluşturduğum bu değerleri, yukarıdaki HTML etiketlerinin içerisine kaydedicem. Değişkenleri kaydedebilmek için, appendChild() methodunu kullanicam:

//paste value

in_small.appendChild(create_time_item);

in_span.appendChild(item_val);

in_span.appendChild(in_small);

//paste value

todo_element.appendChild(in_input);

todo_element.appendChild(in_span);

Buradaki sıralanış, HTML etiketlerinin hiyerarşisine göre düzenlendi. Birden fazla appendChild() kullanmam kafanızı karıştırmasın.

Şimdi bütün bu yaptıklarımızı, HTML içerisindeki class içerisine gönderelim. Ardından da, input içerisini temizleyelim:

document.getElementsByClassName("readyItems")[0].appendChild(todo_element);

//reset input

this.value = "";

Kodların toplu görünümü:

add_item.onkeypress = function(add){

  if(add.which == 13){

    //create element

    var todo_element = document.createElement("LI");

    var in_span = document.createElement("SPAN");

    var in_small = document.createElement("SMALL");

    

    //create element input checkbox and value

    var in_input = document.createElement("INPUT");

    in_input.setAttribute("type", "checkbox");

    in_input.setAttribute("value", "x");

    

    //create date items

    var date = new Date();

    var now = date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear();

    

    //in input value

    var create_time_item = document.createTextNode(now);

    var item_val = document.createTextNode(this.value);

    in_small.appendChild(create_time_item);

    in_span.appendChild(item_val);

    in_span.appendChild(in_small);

    

    //pasta values

    todo_element.appendChild(in_input);

    todo_element.appendChild(in_span);

    document.getElementsByClassName("readyItems")[0].appendChild(todo_element);

    

    //reset input box

    this.value = "";

  }

}

Buton ile değerleri almak için de neredeyse aynı işlemi uyguluyoruz. Github linki üzerinden buton üzerinde kullandığımız işlemleri kontrol edip, denemeler yapabilirsiniz.

Hazırladığımız bu To Do List bir probleme sahip. Aldığı değerler sayfa yeniden yüklendiğinde kayboluyor. Kalın sağlıcakla..

Bunlar İlginizi Çekebilir