Karalama Defteri
Klavye Kırıntıları
Klavye Kırıntıları
Çok geçte olsada jQuery’i temelden ve elimden geldiği kadar anlatmaya karar verdim.(Eğer “jQuery ne” diye bir soru oluştu ise aklınızda erhan burhan‘ın sitesindeki güzel yazısını tavsiye ederim)
Sanırım sadece yazı değil, yanında videolar ile anlatımlarımda olacak.
jQuery dökümanları ile paralel olarak yazmaya çalısacağım ancak içerisinde atlayacağım alanlar olacak. Orta hatta ortanın üstü bir jQuery bilgisine sahip olmanızı sağlayana kadar yazmaya çalışacağım. Bu bağlamda ilk yazımız jQuery’nin en güzel özelliklerinden olan each olacak.
each :
Temelde olsa yazılım bilginiz var ise zaten bu özelliğin ne işe yaradığını çoktan anlamışsınızdır. Foreach’in jQuery versiyonuda diyebiliriz.
Peki ne iş yapar bu each?
Belirlediğiniz seçicilerden oluşan bir dizideki elemanların içerisinde teker teker dönmemizi sağlar. Örnekleyerek devam edersek sanırım daha rahat anlaşılabilir.
Bir sayfamız var, içerisindeki tüm inputları seçeceğiz ve each ile bunların kenar çizgilerini kırmızı yapacağız.
Seçici Kodlar :
function sec(){
$('input').each(function(){
this.style.border = "solid 1px #cc0000";
});
}
Sayfanın örneğine buradan ulaşabilirsiniz.
İyide bunu zaten daha kısa bir kod ile yapabiliriz neden bu yolu seçtik şeklinde sorabilirsiniz. Bu örnek için aslında each’i kullanmanın bir anlamı yok. Bu örnekte each ile tüm öğeleri seçebildiğimizi görmüş olduk. Eğer sayfadaki “seç” butonuna tıklarsanız kendiside dahil tüm inputları seçtiğini göreceksiniz. Each’in bize yararını anlamak için bir sonraki örneğimize geçelim.
Bu örneğimizdeki inputlarımızın 3 farklı yazı rengi bulunmaktadır. Biz bunlardan siyah olanlarının mavi olmasını istiyoruz. Bunun için tüm inputları öncelikle each ile bir diziye alacağız ve daha sonrada yazı renklerini kontrol edip siyah olanları mavi yapacağız.
Seçici Kodlar :
function sec(){
$('input').each(function(){
var yaziRengi = this.style.color; //yazi rengini alıyoruz
if(yaziRengi == "black"){ //yazı rengi siyahmı kontrol ediyoruz
this.style.color = "blue"; //siyah olanları mavi olarak atıyoruz
}
});
}
Sayfanın örneğine buradan ulaşabilirsiniz.
Bu örnek ile aklınızda birşeylerin oluştuğuna inanıyorum.
Each’i amacına uygun nasıl kullanacağımıza geldik. Bir formumuz olduğunu düşünelim ve biz bu formda hiçbir alanın boş bırakılmamasını istiyoruz. Form submit edildiğinde boş alan varmı yokmu kontrol edelim. Eğer boş alanlar var ise kenarlık ve arkaplan renklerini değiştirelim.
Seçici Kodlar :
function sec(){
$('input').each(function(){ //tüm inputları bir diziye atıyoruz
//inputun değerini alıyoruz ve değerdeki boşluları siliyoruz
//burada boşluk silmemiz normal değeri etkilemeyeceği gibi
//gibi boş veri kontrolünü sağlayacaktır.
if(this.type=="text"){//tipi text olan inputları seçiyoruz
var inputValue = this.value.replace(" ","");
if(inputValue == ""){//eğer değer boş ise
$(this).css({"border":"solid 1px #c00","background-color":"#c00","color":"#fff"});
//üzerinde işlem yaptığımız inputun stilini değiştiriyoruz.
}
else //eğer veri boş değil ise daha önceden kontrolde boş gelme ihtimaline karşın
//input'un şeklini eski hale getiriyoruz.
{
$(this).css({"border":"solid 1px #000","background-color":"#fff","color":"#000"});
}
});
}
}
Sayfanın örneğine buradan ulaşabilirsiniz.
Yukarıdaki örnekleri jQuery’nin seçicileri ile daha kısa bir şekilde yapmamızda mümkün ancak konumuz each olduğu için uzunda olsa biz bu yolu tercih ettik. Çünkü seçiciler sayesinde elde edemeyeceğimiz veriler aracılığı ile çok daha etkili çözümler üretebileceğimizi ileride göreceksiniz.
Yukarıda çok kısa bir şekilde yaptığımız işlemleri jQuerysiz yapsak emin olun çok daha uzun sürecekti.
Sorularınız için sağdaki iletişimin altındaki soru sor ile bana iletebilirsiniz.
18/10/2009 - 11:44 am
Yazı için çok teşekür ederim açıklayıcı anlatımın sayensinde “each”ı anladım
[Translate]
02/02/2010 - 2:07 am
БАлдёж, давай исчё
[Translate]