‘ipuçları’ etiketi için sonuçlar
jQuery ipuçları – 3
Temmuz 1st, 2010 • 9 yorum Javascript, jquery
Etiketler: ipuçları, jquery, live(), resize, select, size()
Jquery ipuçları – 1
Jquery ipuçları – 2
jQuery ipuçlarını yayınlamaya devam ediyorum.
1- Dinamik oluşturulan elementlere live() ile olay atama
Sayfaya dinamik olarak eklenen içeriklerde veya ajax ile doldurduğumuz içeriklerdeki elemanlara bir olay atadığımızda(click, mouseover vd.) çalışmayacaktır. jQuery geliştiricileri bunun için live() fonksiyonunu geliştirmiş.
$('a.acilSusam').live('mouseover', function() {
// yapilacak islemler
});
2 – Tarayıcı Penceresinin Boyutlarını Değişmesini Yakalamak
Belki ara sıra lazım olacak bir kod ama bazen gerekiyor işte. Pencere boyutu her değiştiğine bazı işlemleri yapmak sistemimizi yorabilir diye setTimeout yardımı ile belli aralıklarla bunu yaptırıyoruz.
function pencereBoyutuDegisti() {
alert("Değişti");
};
var resizeTimer = null;
$(window).bind('resize', function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(pencereBoyutuDegisti, 100);
});
3 – Element miktarını bulmak
Bir dokümanda seçilen elemandan kaç adet olduğu bulmak için;
$('element').size();
4 – Bir elemanın index değerini bulmak
index değerini bulmanın farklı bir yolu
$("ul > li").click(function () {
var index = $(this).prevAll().length;
});
5- Bir elemanın görünür olup olmadığını yakalamak
if($(".eleman").is(":visible")) {
alert('Burda');
}
6- Kaç tane alt elemanı(çocuk elemanı) var
<div id="foo">
<div id="bar"></div>
<div id="baz">
<div id="biz">
</div>
<span><span>
</div>
//kac tane alt elemanı oldugunu bulmak icin
$("#foo > div").length
7- jQuery Kopya Kağıdı(Cheat Sheet)
jQuery’nini bir çok özelliği var ve bunları aklımızda tutma imkanımız yok. Bir kopya kağıdı işimize yaraya bilir.
http://www.futurecolors.ru/jquery/
Burada son sürümün kopya kağıdı mevcut. Bende css3 özelliklerini kullanarak biraz renklendirdim. Benim renklendirdiğim(CSS3 içerir, herisi göremez)
8 – Select Elemanı ipuçları
// secili olan ögenin metnini almak
$("#myselect option:selected").text();
// secili olan ögenin degerini almak icin
$("#myselect option:selected").val();
// secili ogenin index degeri
$("#myselect option").index($("#myselect option:selected"));
// indeksi 2 olan ögeyi seçili hale getirmek
$("#myselect option:eq(2)").attr("selected", "selected");
Kaynaklar
- http://blog.kenmoredesign.com/2009/02/02/useful-jquery-snippets/
- http://tympanus.net/codrops/2010/01/07/some-useful-javascript-jquery-snippets-part-2/
- http://www.catswhocode.com/blog/10-jquery-snippets-for-efficient-developers
- http://tympanus.net/codrops/2010/01/08/some-useful-javascript-jquery-snippets-part-3/
- http://www.opensourcehunter.com/2010/02/27/26-cool-and-usefull-jquery-tips-tricks-solutions/
sIFR 3 Kullanımı ve İpuçları
Haziran 23rd, 2010 • 15 yorum CSS, XHTML
Etiketler: ipuçları, metin yerine resim koyma, sFIR
Bu makaleyi çok önce yazmayı planlıyordum, ancak üzerinden zaman geçmesine rağmen hala sIFR kullanılan bir yöntem olduğu için yinede yazıyı yazmaya karar verdim. Her nekadar font-face kull anımı bize bu tip alternatiflerden alıkoymak için çıktı ise de daha öncede bahsettiğimiz gibi tasarımdaki anti-aliasing özelliğini sağlayamıyor maalesef. Bundan dolayı hala eski yönte mleri kullanmaya devam etmekteyiz.
Aslında ben sIFR kullanımını daha önce anlattım. Metin Yerine Resim/Flash Ekleme Teknikleri (Image Replacement) yazısının içinde sIFR kullanımını anlattım. Burada sIFR’ın yeni sürümünü ve ipuçlarını yazacağım.
sIFR3′ün son sürümünü http://dev.novemberborn.net/sifr3/nightlies/ adresinden en üstteki bağlantıdan son sürümü indirebilirsiniz.
Metin Yerine Resim/Flash Ekleme Teknikleri (Image Replacement) yazısında genel olarak sIFR’ın nasıl ekleneceği konusunda bilgi verdik. Bu nedenle işin bu kısmını geçip sIFR3 ile yeni ne geldi onu göstereceğiz ve artı ipuçları vereceğiz. Okumaya devam edin »
jQuery İpuçları – 2
Şubat 19th, 2010 • 13 yorum Javascript, jquery
Etiketler: ie6, ipuçları, jquery, kontrol kutuları, metot zincirleme, toggle, toggleClass, zebra tablolar
Genel olarak kullandığım ve dikkatimi çeken jquery ipuçlarını sizlerle paylaşmaya devam ediyorum. İpucu serisinin ilkine buradan ulaşabilirsiniz.
1- toggle() ile kolayca gizle/göster yapmak.
Javascript ile en çok yaptığımız işlerden biriydi bir bağlantıya veya elemana tıklayınca açılan bir daha tıklayınca kapanan alanlar oluşturmak. jQuery bu iş için bize toggle() fonksiyonunu tanımlamış. Çeşitli kullanım şekilleri olsada ben size burada en basit şeklini anlatacağım.
$('p.hidden').toggle ();
Bu kadar basit bir kod ile işlem tamamdır. toggle() fonksiyonuna çeşitli animasyonlar ve işler ekleyebiliyoruz. Gayet kullanışlı bir özellik.
2- toggleClass() ile toogle uyguladığımız elemanlara sınıf tanımlama
Yukarıda yaptığımız uygulamaya ek olarak tetiklenen elemana bir sınıf tanımlamak için
$('p.hidden').toggleClass ("acik");
bu kod sayesinde mesela çok basit şekilde aç-kapa butonu yapabiliriz.
3- click() ile tetiklenen bağlantılarda ie6 sorununu gidermek
Bir bağlantıya jquery ile erişip click() metodunu uyguladığımızda ie6 ile sorun yaşıyoruz. Ben bu sorun için bir çözüm bulmuştum ancak Hüseyin Mert daha iyi bir çözüm buldu. Ben bu çözümü burada sizlerle paylaşmak istedim.
$("a").click(function(event){
event.preventDefault();
// yapılacaklar
});
Böylece sorunu aşmış oluyoruz. Hüseyin Mert’e teşekkürler tekrar.
4 – Metot Zincirleme özelliği ile daha kısa kodlar üretmek
Bir çok metodu ard arda aynı elemana yazmaktansa zincirleme kullanabilme özelliği sunuyor bize jQuery.
$('p.ilkParagraf').css ('color', '#ff0000').text ('Giriş').addClass ('yazi').fadeTo (1000, 1);
Yukarıdaki örnekte görüldüğü gibi ard arda metotları kullanabiliriz. Ancak çok fazla kullanmanın performansı etkilediğini unutmadan bu özelliği kullanalım.
5- Kontrol kutularının(checkbox) kontrolü
jquery ile kontrol kutularını kontrol etmenin bir kaç yolu var
if($('#deneme:checked').val() != null)
{
// işaretli ise bunu yap
}
//veya
if($('#deneme:checked').length != 0)
{
// işaretli ise bunu yap
}
//veya
$('input[name=deneme]').is(':checked')
$('input[name=deneme]').attr('checked')
// işaretli veya degil
$('input[name=deneme]').attr('checked', true);
6 – Arama metinlerini değiştirmek
Arama kutuları içine açıklayıcı metinler yazarız. “Anahtar Kelime”, “Arama” vb. gibi. bu metinleri yazarız, ancak kullanıcı bu alana odaklandığında bu metni kaldırmalıyız ve kullanıcı bir şey yazmadan çıkarsa o zamanda genel yazdığımız metni geri getirmeliyiz.
var aramaKutusu = $("#aramaAlani");
var aramaKutusuBasDeg = "Aranacak Kelime";
aramaKutusu.attr("value", aramaKutusuBasDeg);
aramaKutusu.focus(function(){
if(jQuery.trim($(this).attr("value")) == aramaKutusuBasDeg) $(this).attr("value", "");
});
aramaKutusu.blur(function(){
if(jQuery.trim($(this).attr("value")) == "") $(this).attr("value", aramaKutusuBasDeg);
})
Güncelleme: Bu kullanımın daha basit bir şekli var. yedincisenol’un yazdığı kod daha basit ve kullanışlı.
function doldur(o){ if (o.value==o.defaultValue){o.value="";} else if(o.value==""){o.value=o.defaultValue;}o.onblur=function(){doldur(o)}}
ve kodu sonra çağırmak için (jquery ile)
$("#inputId").focus(function(){ doldur(this) });
veya html içinden
<input name="adınız" value="Adınızı girini" onfocus="doldur(this)"/>
Kod için yedincisenol’a teşekkürler
7- Zebra tablo yapmak
Tablo okunabilirliğini arttırmak için bir satır farklı bir renk veya stil tanımlarız. Bunu javascript ile uzun yoldan yaparken jquery ile tek satır kod ile yapabiliyoruz
$("tr:nth-child(odd)").addClass("farkliSatir");
8 – Çok tekrarlanan seçicileri bir değişkene tanımlamak
$('p.ilkParagraf').css ('color', '#000000');
$('p.ilkParagraf').text ('Giriş');
$('p.ilkParagraf').addClass ('yazi');
$('p.ilkParagraf').fadeTo (1000, 1);
Yukarıdaki gibi bir kullanımda çok fazla tekrarlayan bir seçiciye bir değişkene atayıp daha optimum bir kod elde edebiliriz.
var $p = $('p.ilkParagraf');
$p.css ('color', '#000000');
$p.text ('Giriş');
$p.addClass ('yazi');
$p.fadeTo (1000, 1);
Bu kullanım ile eleman ilk başta bir değişkene atanıp ön belleğe alınıyor ve daha hızlı erişiliyor.
Kaynaklar
Jquery ipuçları
Ekim 22nd, 2009 • 9 yorum Javascript
Etiketler: ipuçları, jquery, kolaylık
jQuery’i artık neredeyse her projemde kullanıyorum. Aklıma gelen ve not aldığım ipuçlarını burada yazdım. Sizinde aklınıza gelen olursa yorum kısmında katkıda bulunabilirsiniz. Ayrıca kaynaklar kısmındaki linklerde de daha fazlası var
1- jQuery kütüphanemizi Google’da host etmek: google bize jQuery kütüphanesini kendi hostu üzerinden yüklememizi sağlıyor. Bu bize ön belleğe alınana dosyanın daha hızlı yüklenmesini sağlar.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//isler burada
});
</script>
Bu sayede jquery kütüphanesini her projeye eklerken kopyala yapıştır ile de uğraşmak zorunda kalmıyoruz. İstediğimiz her yerde jQuery kullanma imkanıda veriyor bize bu kod.
2- jquery kısaltması: jquery kodlarımzı yazarken bazen
$(document).ready(function (){});
aklımıza gelmeye bilir
$(function (){});
bu daha kolay ve akılda kalıcı bence
3- fare üzerinde iken ve üzerinden gittiğinde
$("li").hover(
function () {
// fare üzerinde iken bunu yap
},
function () {
// fare kaçınca bunu yap
}
);
4- not seçicisi: Bir seri elemana yaptırdığımız bir işi aradan bir tane elemanın yapmasını istiyorsak bu seçiciyi uygulayabiliriz.
$('ul#sekme li a').not("ul li#diger a").click(function(){
// yapılacak işler
});
Yukarıdaki kodlamada biz sekmelere bir tanım yapıyoruz ama en son sekmeye tıklayınca bu işlemin yapılmasını istemiyoruz. Bu iş için biçilmiş kaftan :not seçicisi
5- siblings seçicisi liste ve benzeri aynı seviyedeki elemanlar üzerinde etkileşimli erişim sağlayan güzel bir seçici. Daha önce http://www.fatihhayrioglu.com/jquery-ile-basit-sekme-yapimi/ anlatırken kullanmıştım.
$(this).parent('li').addClass('sekmeSecili').siblings().removeClass('sekmeSecili');
Bu kodda da görüldüğü gibi tıklanan sekmeye sekmeSecili sınıfı atıyoruz diğer sekmelerde aynı sınıf varsa onları kaldırıyoruz.
6- HTML içine jQuery den eleman eklemek:
var ekleBunu = $('<div></div>');
ekleBunu.attr("id","yeniKatman").appendTo("body");
7- Bir elemanın varlığını kontrol etmek
if ($("#someDiv").length) {
// eğer varsa bunu yap
}
8- Kolay kullanılan tarayıcıyı yakalama
$.browser.safari $.browser.msie $.browser.mozilla
tarayıcı sürümünü yakalamak için
if ($.browser.msie && $.browser.version <= 7 )