jQuery UI sürükle bırak ile alış veriş sepeti mantığı
Uzun zaman önce hayalini çok kurduğumuz fakat yeterince javascript bilmemekten ve kütüphanelerin bu denli gelişmiş olamayışından dolayı bir türlü gerçekleştiremediğimiz bir olaydı bu. Nereden aklıma geldi bilmiyorum, fakir bir çocuğun zengin olduğunda hayalini kurup bir türlü yapamadığı şeyi yapması heyecanıyla sarıldım web matrixe :) Heeeeeman, güç bende artık ! Senaryomuz şu şekilde, bir tarafta ürünlerimiz var diğer tarafta ise alış veriş sepetimiz. Kullanıcı almak istediği ürünü sürükleyip sepete bırakıyor. Aynı ürünü tekrar sepete attığında sadece adet bir artıyor. Ürünü sepetinden çıkartmak istediğinde ise, üzerine çift tıklıyor. Bu işi yapmak için jQuery ve jQueryUI kullanıyoruz. En can alıcı noktamız ise jQuery UI nin Draggable ve Droppable özelliği. Kodların üzerinde açıklamalar bulunuyor. [js] $(document).ready(function(){ // Sürükleme yapılacak elemanları seçiyoruz. $(".urunGrid ul li").draggable({ revert:true, helper: "clone" }); // Üzerine elemanları alacak olan kısmı belirtiyoruz. Yani sepetimiz. $(".sepet").droppable({ drop: function( event, ui ) { var t = $(this); var d = ui.draggable; // bu bizim tuttuğumuz eleman yani
// Veritabanına yazma işlerini burada yapabilirsiniz. (ajax)
idToLi.fadeOut().fadeIn(); // şeklimizi yapıyoruz :) // eğer daha önce ürün ekli değilse ekliyoruz, ekliyse adetini 1 arttırıyoruz. if(idToLi.html()==null){ ul.append("<li id=\""+id+"\" title=\"Silmek için çift tıklayın\">1 * "+d.html()+"
Ürünler
- Asus Anakart 125 TL
- Intel İşlemci 23 TL
- Amd İşlemci 44 TL
- Sony Bilmemne 96 TL
Sepet ürün yok
Sürükle bırak gibi dışarıdan karışık gelen bir olayı jQuery sayesinde çok basit bir şekilde çözdük. Bu konuyla ilgili ufak tefek denemeler yaparak olayı daha iyi kavraya bilirsiniz. Aşağıda çalışan örneği görebilirsiniz, umarım faydalı bir yazı olmuştur :)