<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CETURK &#187; JQuery</title>
	<atom:link href="http://www.ceturk.com/kategori/web-teknolojileri/jquery/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Sun, 05 Sep 2010 21:36:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery Kullanımınızı Geliştirmek için Öneriler &#8211; 2</title>
		<link>http://www.ceturk.com/web-teknolojileri/jquery-kullaniminizi-gelistirmek-icin-oneriler-2.html</link>
		<comments>http://www.ceturk.com/web-teknolojileri/jquery-kullaniminizi-gelistirmek-icin-oneriler-2.html#comments</comments>
		<pubDate>Sun, 08 Nov 2009 17:59:00 +0000</pubDate>
		<dc:creator>Kurtman Çelik</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Kurtman Çelik]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4200</guid>
		<description><![CDATA[
Daha önceki yazının devamı niteliğindeki başka bir derlemeye hoşgeldiniz. jQuery&#8217;nin popüler olmasının nedeni, şahsi blogculardan tutunda, büyük şirketlere kadar her alanda birçok kullananının olması. Çünkü bizim ve çoğu insanın, henüz haberdar olmadığı birçok işlevselliği ve bunun yanında bir de kullanım kolaylığı sağlaması büyük etkenler olarak gösterilebilir. Umuyorum jQuery kullanıcılarının büyük bir çoğunluğu, problemlerini çözmek için [...]]]></description>
			<content:encoded><![CDATA[<p><img title="jquery-banner-2" src="http://www.ceturk.com/images/jquery-banner-2.jpg" alt="jquery-banner-2" width="625" height="250" /></p>
<p>Daha önceki yazının devamı niteliğindeki başka bir derlemeye hoşgeldiniz. jQuery&#8217;nin popüler olmasının nedeni, şahsi blogculardan tutunda, büyük şirketlere kadar her alanda birçok kullananının olması. Çünkü bizim ve çoğu insanın, henüz haberdar olmadığı birçok işlevselliği ve bunun yanında bir de kullanım kolaylığı sağlaması büyük etkenler olarak gösterilebilir. <span id="more-4200"></span>Umuyorum jQuery kullanıcılarının büyük bir çoğunluğu, problemlerini çözmek için doğru stratejiyi kullanarak gerekli eklentileri kullanıyorlardır. Ama hazır çözümlerin yetersiz kaldığı yerde, lazım olanı kendinizin de yapabilir olduğunuzu bilmenizde fayda var. İşte bu sebepden ötürü şimdi birkaç öneri ve örnek uygulamaya başlıyoruz:</p>
<h2>#1 &#8211; jQuery Seçicilerinizi Test Edin ve Geliştirin</h2>
<p><a href="http://codylindley.com/jqueryselectors/" target="_blank">jQuery selector Lab</a> adlı araç gerçekten harika ve bedava bir uygulama, isterseniz download ederek çevrimdışı mod&#8217;da da çalışabilmeniz mümkün. Birçok HTML elementinin kombinasyonundan oluşan bir sayfa var ve ekranın sol tarafındaki uzunca listede yer alan hazır seçicilerle hangi seçicinin hangi elementi işaret ettiğini görebiliyorsunuz. Sol tarafdan seçtiğiniz bir seçici aktif olduğunda, HTML elementleri renk değiştirerek size sonucu gösteriyorlar. İsterseniz en üst kısıma kendi seçicinizide yazabilirsiniz.</p>
<p><img class="alignnone size-full wp-image-4207" title="selector" src="http://www.ceturk.com/images/selector.jpg" alt="selector" width="625" height="350" /></p>
<h2>#2 &#8211; Eğer jQuery Koleksiyonu En Az Bir Element İçeriyorsa: Test Edin</h2>
<p>Eğer seçicilerin çalıştırılması sonucu oluşan jQuery koleksiyonunuzda bir element olup olmadığını yani sonucun boş olup olmadğını kontol etmek isterseniz, koleksiyonun ilk elemanına erişmeyi deneyebilirsiniz.</p>
<pre class="brush:javascript">if($(selector)[0]){...}

//veya

if($(selector).length){...}</pre>
<p>Bir örnek verecek olursak:</p>
<pre class="brush:javascript">&lt;ul id="Urunler"&gt;

&lt;li&gt;&lt;input class="Stokta" name="item" type="radio" value="Urun 1" /&gt;Urun 1&lt;/li&gt;

&lt;li&gt;&lt;input class="Bilinmiyor" name="item" type="radio" value="Urun 2" /&gt;Urun 2&lt;/li&gt;

&lt;li&gt;&lt;input class="Stokta" name="item" type="radio" value="Urun 3" /&gt;Urun 3&lt;/li&gt;

&lt;/ul&gt;

&lt;pre escaped="true" lang="javascript"&gt;...

// Aşağıdaki if bloğu true değeri döndürür çünkü,
// jQuery ile seçim işlemi sonucu elimizde 2 nesne olmuş oluyor
// Böylelikle &lt;kodlar&gt; yazan kısımdaki kodlar çalıştırılacaktır.

if($('#Urunler input.Stokta')[0]){&lt;Kodlar&gt;}</pre>
<h2>#3 &#8211; jQuery.org&#8217;dan En Güncel Sürümün Çekilmesi</h2>
<p>Aşağıdaki kod satırı ile jQuery&#8217;nin en güncel sürümünü sayfanıza ekleyebilirsiniz:</p>
<pre class="brush:html">&lt;script src="http://code.jquery.com/jquery-latest.js"&gt;&lt;/script&gt;</pre>
<p>Eğer aklınıza gelen bir fikri çabukcak en son sürüm üzerinde denemek isterseniz kullanışlı bir yöntem.</p>
<h2>#4 &#8211; Efektlerinizi Senkronize Bir Hale Getirmek için CallBack Fonksiyonlarını Kullanın</h2>
<p>Eğer bir iş bittikden sonra, başka bir fonksiyonun çalıştırılmasını istiyorsanız Callback fonksiyonları denemelisiniz. JavaScript, fonksiyonların sonuna Callback  fonksiyonları eklemeyi mümkün kılar. Örnek bir çalışmayla anlatacak olursak:</p>
<pre class="brush:javascript">&lt;style&gt;

div.button    { background:#cfd; margin:3px; width:50px;

text-align:center; float:left; cursor:pointer;

border:2px outset black; font-weight:bolder; }

#sliding      { display:none; }

&lt;/style&gt;

&lt;script&gt;

$(document).ready(function(){

//Button CSS sınıfına bağlı bir div'e tıklandığı zaman,
// "sliding" ID'sine ait div aşağıya doğru kayar.

$("div.button").click(function () {

//bu noktaya kadar; div basılı düğme şeklini almış olmalı.

$(this).css({ borderStyle:"inset", cursor:"wait" });

//buradan itibaren callback fonksiyonu çalışacak ve aynı şekilde div'i eski haline geri getirecektir.

$('#sliding').slideDown('slow', function(){

$('#sliding').slideUp('slow', function(){

//div eski haline geldiğinde buton işlevini gören div'i eski haline getiren fonksiyon çalışacak.

$('div.button').css({ borderStyle:"outset", cursor:"auto" });

});

});

});

});

&lt;/script&gt;</pre>
<p>Kodun canlı örneğine <a href="http://www.tripwiremagazine.com/wp-content/uploads/images/stories/Articles/jquery-tips2/demo.html" target="_blank">buradan</a> erişebilirsiniz.</p>
<h2>#5 &#8211; Özel Nesneleri ve DOM Nesnelerini Kontrol Etmek için Olayları Kullanın</h2>
<p>jQuery&#8217;nin en çok kullanılan özelliklerinden bir tanesi de, Web sayfanızdaki elementlere olaylar atayabilmeniz. jQuery çok geniş kapsamlı bir<a href="http://docs.jquery.com/Events" target="_blank"> olay mekanizması</a>nı destekler ve bunların haricinde kendi olayınızı yazmanıza da olanak verir. Elementlere olay atamak pek kolay gibi görünmüyor olabilir. Hemen bir örnek yapalım:</p>
<pre class="brush:javascript">// Sayfadaki bütün paragraf nesnelerinin click olayına: imlecin koordinatlarını ekran yazan fonksiyonu ata.

$("p").bind("click", function(e){

var str = "( " + e.pageX + ", " + e.pageY + " )";

$("span").text("Şu koordinatlara tıklandı: " + str);

});

//Birden fazla olaya aynı anda fonksiyon atanması.

$("p").bind("mouseenter mouseleave", function(e){

//toggleClass; bir css sınıfı, seçili elemente bağlanmışsa o sınıfı elementten ayırır

//eğer belirtilen sınıf, elemente bağlı değilse; sınıfı elemente bağlar.

$(this).toggleClass("mouse-over");

});</pre>
<p>jQuery ile yukarıdaki gibi sadece DOM nesnelerinin standart olaylarını değilde, kendi yazdığınız bir fonksiyonu da bir olay olarak tanıtabilirsiniz.</p>
<pre class="brush:javascript">}

function SepeteEkle() {

// Buraya kendi kodunuzu yazın...

};

var Sepetim = new SepeteEkle('Bilgisayar');

jQuery(Sepetim).bind('UrunEkle', function() {

// Özelleştirilmiş olay.

});

// Yukarıda tanımlanan olayı aşağıda tetikle.

jQuery(Sepetim).trigger('UrunEkle');

);</pre>
<h2>#6 &#8211; Özel Seçicileri Kullanmayı Öğrenin</h2>
<p>jQuery en çok kullanılan seçme işlemlerine alternatif olarak kendi seçici fonksiyonunuzu yazmaya olanak tanır.</p>
<pre class="brush:javascript">$.expr[':'].OzelSecici= function(element, index, meta, stack){

// element- DOM elementi

// index - Seçim işlemi sonrasında dönen yığının içindeki sıra numarası

// meta - seçiciniz hakkında extra bilgi.

// stack - Bütün nesneleri barındıran sığın

// Eğer aranan nesneyi içeriyorsa true döndür.

// aranan bulunamadıysa en son aktif olanı gönder.

};

// Özel seçicinin kullanımı.

$('.CSS_Sinifi:test').BirseylerYap();</pre>
<p>Şimdi bir de aşağıdaki örneğe bakalım. Bu örnek nitelikleri arasında &#8220;rel&#8221; olan bütün nesneleri döndürür:</p>
<pre class="brush:javascript">$.expr[':'].withRel = function(element){

var $this = $(element);

//Basitçe: attr fonksiyonu ile gelen elementin nitelikleri arasında dolaşılır ve "rel" bulunduğu anda nesne geri gönderilir.

return ($this.attr('rel') != '');

};

$(document).ready(function(){

//Görüldüğü üzere seçicinin kullanımı gayet basittir ve ekleyelim, daha öncede bahsettiğimiz zincirleme kod yazımını kendi seçicinizle de kullanabilirsiniz.

// "rel" niteliğini taşıyan nesneler bulunduğunda, arkaplan renklerini yeşil olarak ayarla.

$('a:withRel').css('background-color', 'green');

});

...

&lt;ul&gt;

&lt;li&gt;

&lt;a href="#"&gt;rel yok&lt;/a&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;a rel="İşte Burada" href="#"&gt;rel var&lt;/a&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;a rel="" href="#"&gt;rel yok&lt;/a&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;a rel="Bir tane daha" href="#"&gt;rel var&lt;/a&gt;

&lt;/li&gt;

&lt;/ul&gt;</pre>
<h2>#7 &#8211; Nesnelerin Tümünü Tıklanabilir Hale Getirin</h2>
<p>Çoğu menü <em>ul &#8211; li</em> HTML taglarının CSS ile kullanımıyla oluşturulur. Sadece<em> li</em> etiketinin içindeki <em>a</em> etiketi yerine bütün<em> li</em> etiketinin tıklanabilir olup, yine de içindeki linke yönlendirme yapılabilmesi hoş bir özellik olurdu. jQuery bunu kolaylıkla yapar; ilk önce içinde <em>a</em> etiketi olan<em> li</em> elementleri bulunur ve<em> li</em> elementinin <em>click</em> olayına, <em>a</em>&#8216;nın <em>href</em> niteliğinde yer alan adrese yönlendirme işlemini yapan fonksiyon yazılır. Karmaşık gibi göründü sanırım. Bir örnek yapalım:</p>
<pre class="brush:javascript">&lt;ul&gt;

&lt;li&gt;&lt;a href="home"&gt;home&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="home"&gt;about&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="home"&gt;contact&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

...

//ul elementi içindeki tüm li elementlerini tıklanabilir hale getiriyor.

$("ul li").click(function(){

//li elementinin içindeki a elementi bulunuyor ve href niteliğindeki değer okunarak,
//sayfanın o adrese yönlendirilmesi sağlanıyor.

window.location=$(this).find("a").attr("href"); return false;

});</pre>
<h2>#8 &#8211; Resimlerin Önyüklenmesi</h2>
<p>JavaScriptle birlikte kullanılacak resimlerin önceden sayfaya yüklenmesi yerine güzel bir fikir olabilir.</p>
<pre class="brush:javascript">//Listesi gönderilen resimleri sayfaya yükleyen fonksyion
//arguments &gt; gönderilen dosya listesini temsil eder.
jQuery.preloadImages = function(){

//Sayfadaki resim elementleri arasında dolaş.

for(var i = 0; i&lt;arguments.length; i++){

jQuery("&lt;img&gt;").attr("src", arguments[i]);

}

}

// fonksiyonu aşağıdaki şekilde kullanabilirsiniz.

$.preloadImages("images/logo-1.png", "images/logo-2.png", "images/logo-3.png");</pre>
<h2>#9 &#8211; Sağ Tuş Menüsünü Pasif Yapın</h2>
<p>JavaScript ile yıllardır yaptığmız bu işlemi jquery daha kolay bir hale getiriyor. Üstelik bu sefer, sağ tuş menüsünü pasifleştirmek yerine başka türlü işlemler yapmak içinde kullanabilirsiniz.</p>
<pre class="brush:javascript">$(document).ready(function(){

$(document).bind("contextmenu",function(e){

return false;

});

})</pre>
<h2>#10 &#8211; Seçicileri Gruplandırarak Kodunuzu Basitleştirin</h2>
<p>Kodunuzu basitleştiren ve okunmasını kolaylaştıran bir diğer yöntemde, aynı işlevi yapan birden fazla elementin gruplandırılarak tek bir fonksiyon içerisinde kullanılmalarıdır.</p>
<pre class="brush:javascript">// Aşağıdaki gibi bir kod yazımı boş yere zamanınızdan çalacak ve daha fazla yer işgal edecektir.

$('div.close').click(Birseyler_yap);

$('button.close').click(Birseyler_yap);

$('input.close').click(Birseyler_yap);

// Aşağıdaki yazım, en uygun olanıdır: Aynı işlemi yapan bütün elementler tek bir alanda toplanmıştır ve aynı anda hepsine birden aynı iş yüklenmiştir.

$('div.close, button.close, input.close')

.click(Birseyler_yap);</pre>
<h2>#11 &#8211; Kodunuzu Test Edin</h2>
<p>jQuery, kendine has bir Test Kütüphanesi olan <a href="http://docs.jquery.com/QUnit" target="_blank">QUnit</a> kütüphanesini kullanır. Test blokları yazmak kolaydır ve size kodunuzu hala çalışır biçimde tutup, üzerinde güvenle değişiklik yapabilmenizi sağlar. Bir örnek:</p>
<pre class="brush:javascript">//Testleri modüller halinde gruplara ayır.

module("Module B");

test("Test Başlığı", function() {

//Ne kadar testin çalışacağını belirle (Asserts)

expect(2);

//Örnek bir karşılaştırma testi; JUnit'deki assertEquals'a karşılık gelir.

equals( true, false, "Test Başarısız" );

equals( true, true, "Test Başarılı" );

});</pre>
<p>Kurtman Çelik<br />
<a href="http://kurtmancelik.wordpress.com/" target="_blank">kurtmancelik.wordpress.com</a><br />
<strong>Kaynak: <a href="http://www.tripwiremagazine.com/ajax/developer-toolbox/more-jquery-and-general-javascript-tips-to-improve-your-code.html" target="_blank">http://www.tripwiremagazine.com/ajax/developer-toolbox/more-jquery-and-general-javascript-tips-to-improve-your-code.html</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/web-teknolojileri/jquery-kullaniminizi-gelistirmek-icin-oneriler-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Kullanımınızı Geliştirmek için Öneriler</title>
		<link>http://www.ceturk.com/genel/jquery-kullaniminizi-gelistirmek-icin-oneriler.html</link>
		<comments>http://www.ceturk.com/genel/jquery-kullaniminizi-gelistirmek-icin-oneriler.html#comments</comments>
		<pubDate>Sun, 08 Nov 2009 12:10:01 +0000</pubDate>
		<dc:creator>Kurtman Çelik</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Kurtman Çelik]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=4172</guid>
		<description><![CDATA[
Eğer jQuery&#8217;i sıklıkla kullanıyor veya başlamayı planlıyorsanız, inanıyorum ki yapılacak birkaç dakikalık ufak örnekler ile yazdığınız kodu daha kaliteli hale getirmek mümkün. Daha hızlı kod yazmanızı sağlayacak ve kodunuzun kalitesini arttırmanıza yardımcı olacak birkaç yöntemden bahsedelim.

#1 &#8211; jQuery Kütüphanesini Google&#8217;dan Çekin.
Google, sadece jQuery değil daha birçok JavaScript Kütühanesini kendi sunucularında Google Code kütüphanesi adı altında [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-4173" title="jquery-banner" src="http://www.ceturk.com/images/jquery-banner.jpg" alt="jquery-banner" width="625" height="250" /></p>
<p>Eğer jQuery&#8217;i sıklıkla kullanıyor veya başlamayı planlıyorsanız, inanıyorum ki yapılacak birkaç dakikalık ufak örnekler ile yazdığınız kodu daha kaliteli hale getirmek mümkün. Daha hızlı kod yazmanızı sağlayacak ve kodunuzun kalitesini arttırmanıza yardımcı olacak birkaç yöntemden bahsedelim.</p>
<p><span id="more-4172"></span></p>
<h2>#1 &#8211; jQuery Kütüphanesini Google&#8217;dan Çekin.</h2>
<p>Google, sadece jQuery değil daha birçok JavaScript Kütühanesini kendi sunucularında Google Code kütüphanesi adı altında barındırmakta. jQuery&#8217;i kendi sunucunuza yüklemektense doğrudan Google&#8217;ın sunucularından çekmeyi deneyebilirsiniz.</p>
<pre class="brush:html">&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<h2>#2 &#8211; Veri Saklama Yöntemi.</h2>
<p>DOM içerisinde veri saklamaktansa, jQuery&#8217;nin <em>Data ()</em> metodunu kullanın. HTML elemanlarını veri tutucu olarak kullanmak çoğu web programcısının huyudur. Örnek vermek gerekirse:</p>
<pre class="brush:javascript">$('selector').attr('alt', 'saklanacak veri');

// yukarıdaki komutla 'alt' niteliğine yollanan değer, aşağıdaki metodla çekilebilir.

$('selector').attr('alt');</pre>
<p>HTML nitelikleri (attributes), veri saklamak amacıyla kullanılmamalıdır. Yukarıdaki örnekde görüldüğü gibi &#8220;alt&#8221; niteliği veri saklamanın dışında başka bir amaca hizmet etmektedir.</p>
<p>En doğru alternatif, jQuery&#8217;nin <em>Data()</em> metodunu kullanmaktır. Bu metod; size, sayfanızdaki herangi bir elemente bir veri ilişkilendirebilmenizi sağlar.</p>
<pre class="brush:javascript">$('selector').data('parametre_adi', 'saklanacak veri');

$('selector').data('parametre_adi'); // saklanan veriyi çekelim</pre>
<p>Bu tür bir kullanım, kullanılan isimler ve esneklik açısından daha anlamlıdır, sayfa üzerindeki istediğiniz elemente istediğiniz veriyi anlamlı bir başlık vererek ilişkilendirebilirsiniz. Data() ve RemoveData() metodları hakkında daha çok bilgi almak için <a href="http://docs.jquery.com/Internals" target="_blank">jQuery dökümantasyonuna</a> (İngilizce) bakabilirsiniz.</p>
<p>Klasik bir kullanım olarak aşağıdaki kod bloğunu gösterelim. Sayfa yüklendiği sırada istediğimiz veriyi doğrudan bir elemente atıyoruz ve o element aktif hale geldiğinde (focus) veriyi elementden kaldırıyoruz:</p>
<pre class="brush:javascript">&lt;form id="testform"&gt;

&lt;input type="text" class="clear" value="Sürekli temiz" /&gt;

&lt;input type="text" class="clear once" value="Sadece bir defa temiz" /&gt;

&lt;input type="text" value="Normal yazı" /&gt;

&lt;/form&gt;

$(function() {

//"each" fonksiyonunu kullanarak "clear" css sınıfına bağlı olan her input elementine uğra

//"clear once" etiketleri o nesnenin iki css sınıfına bağlı olduğnu gösterir.

$('#testform input.clear').each(function(){

//data(9 metodunu kullan ve verileri elementlere ata.

$(this).data( "txt", $.trim($(this).val()) );

}).focus(function(){

// Element aktif hale geldiğinde, varsayılan veri ile yenisi aynı değilse elementin içini temizle

if ( $.trim($(this).val()) === $(this).data("txt") ) {

$(this).val("");

}

}).blur(function(){

// elementin tekrar pasif olduğunda varsayılan değerleri geri yükle.

// ama "once" ("bir defa" demek) css sınıfı aktif ise elemente dokunma.

if ( $.trim($(this).val()) === "" &amp;&amp; !$(this).hasClass("once") ) {

//Veriyi elementte sakla.

$(this).val( $(this).data("txt") );

}

});

});</pre>
<p><a href="http://www.tripwiremagazine.com/wp-content/uploads/images/stories/Articles/jquery-tips/demo.html" target="_blank">Örnek</a></p>
<h2>#3 &#8211; Özet Dökümanlarını Kullanın (Cheats Sheets).</h2>
<p>Çoğu insan, -hele ki programcılar-, unuttukları bilgiye çabuk erişmek adına çok çaba gösteriyolar. Yazıcıdan çıktısı alınıp monitorun yanında bir yere yerleştirilmiş birkaç özet döküman, size hem zamandan kazanç sağlayacak hem de kodunuzu kalitesini arttıracaktır.</p>
<p><a href="http://oscarotero.com/jquery/" target="_blank">Oscarotero jquery 1.3</a> ve<a href="http://www.gmtaz.com/index.php/jquery-13-cheatsheet-wallpaper/" target="_blank"> duvar kağıdı boyutu</a>ndaki hali</p>
<p><img title="oscarotero" src="http://www.ceturk.com/images/oscarotero.jpg" alt="oscarotero" width="471" height="348" /></p>
<p><a href="http://acodingfool.typepad.com/blog/2009/01/jquery-13-cheat-sheet.html" target="_blank">jQuery 1.3 Özet Dökümanı</a></p>
<p>jQuery 1.3 sürümünün tüm fonksiyon ve özelliklerinin gösterildiği özet dökümanıdır. Yalnız jQuery UI&#8217;i kapsamamaktadır.</p>
<p><img title="acodingfooljquery" src="http://www.ceturk.com/images/acodingfooljquery.jpg" alt="acodingfooljquery" width="621" height="379" /></p>
<h2>#4 &#8211; İndirme Süresini Minimuma İndirin.</h2>
<p>Bazı Web tarayıcıları sayfayla birlikte aynı anda tek bir script dosyasını indirirler. Eğer birden fazla script dosyanız varsa bu, sayfanızın indirilme ve derleme sürelerini etkileyecektir.</p>
<p>Buna alternaitf olarak: Dean Edward&#8217;ın &#8220;Packer&#8221; adlı ücretsiz servisini kullanabilirsiniz. Kodlarınızdaki gereksiz boşlukları ve yorum satırlarını silerek size daha az boyutta ve daha hızlı indirilebilecek bir sürüm oluşturur. Tabi yorum satırlarınız kaybolacağı için scriptinizin bir programcı sürümünü yine elinizin altında bulundurmak gerekir, zira bu işlemi gerçekleştirdikden sonra kodunuz kolay kolay okunamaz bir duruma geliyor. Uygulamaya <a href="http://dean.edwards.name/packer/" target="_blank">buradan</a> erişebilirsiniz.</p>
<p><img class="alignnone size-full wp-image-4180" title="packer" src="http://www.ceturk.com/images/packer.jpg" alt="packer" width="625" height="250" /></p>
<h2>#5 &#8211; jQuery ile Firebug Konsoluna Mesaj Göndermek (Logging)</h2>
<p>Firebug, içerisinde; sayfanızın CSS, HTML, JavaScript kodları üzerinde hata ayıklama ve düzeltme işlemlerini yapabileceğiniz bür sürü araç barındıran bir Firefox eklentisi. Mükemmel bir denetim işlevi sayesinde sayfaların HTML ve CSS kodları içinde rahatça dolaşıp, hangi elementin hangi kod tarafından kontrol edildiğini görsel olarak izleyebilirsiniz.</p>
<p>Firefox, bir jQuery/JavaScript programcısına, kod içerisinden Firebug&#8217;a mesaj göndermeyi uygun hale getiriyor. En basit haliyle gösterecek olursak:</p>
<pre class="brush:javascript">console.log("hello world")</pre>
<p><img title="fire" src="http://www.ceturk.com/images/fire.jpg" alt="fire" width="625" height="250" /></p>
<p>Daha ayrıntılı bilgiyi <a href="http://www.getfirebug.com/logging.html" target="_blank">burada</a> bulabilirsiniz. (İngilizce)</p>
<p>Birden fazla değeri aynı anda göndermek de mümkün, böyle her mesaj arka arkaya gelen satırlarda gösterilir.</p>
<pre class="brush:javascript">console.log(2,4,6,8,"foo",bar)("hello world")</pre>
<p>Dominic Mitchell adlı programcının yazdığı ufak bir eklenti ile istediğiniz hernagi bir jQuery nesnesini Firebug konsoluna mesaj olarak yazdırabiliyorsunuz.</p>
<pre class="brush:javascript">jQuery.fn.log = function (msg) {

console.log("%s: %o", msg, this);

return this;

};</pre>
<p>Kullanımı ise şu şekilde:</p>
<pre class="brush:javascript">$('#some_div').find('li.source &gt; input:checkbox')

.log("İşareti kaldırılacak nesneler")

.removeAttr("checked");</pre>
<h2>#6 &#8211; Mümkünse Öncelikle Nesne ID&#8217;lerini Seçici Olarak Kullanın.</h2>
<p>jQuery ile çalışırken DOM neslerini ID&#8217;leri ile seçmek her zaman en kullanışlı yöntemdir. Nedeni ise bir nesneyi ID&#8217;si ile seçmek, diğer özellikleri ile aramakdan daha hızlı sonuçlanır (Internet Explorer&#8217;da CSS Sınıf seçicisinin bütün DOm nesneleri üzerinde dolaşarak aram yaptığı bilinir). Seçim işlemlerinde ID kullanmak hızlıdır çünkü bütün tarayıcılar kendi içlerinde <em>getElementByID() </em>(ID&#8217;ye göre seç) fonksiyonunu barındırırlar, jQuery&#8217;de bu fonksiyondan yararlanır. CSS sınıflarına göre seçim yapmak ise arkaplanda çaprazlama halinde yapılır ve eğer DOM yapınız geniş ise performansa etki eder.</p>
<p>Ufak bir örnek:</p>
<pre class="brush:javascript">&lt;div id="main"&gt;

&lt;form method="post" action="/"&gt;

&lt;h2&gt;Selectors in jQuery&lt;/h2&gt;

...

...

&lt;input class="button" id="main_button" type="submit" value="Submit" /&gt;

&lt;/form&gt;

&lt;/div&gt;

...

//Gönder düğmesini css sınıfı ile seçiyoruz. 

var main_button = $('#main .button');

//Gönder düğmesini doğrudan, ID bilgini vererek seçiyoruz.

var main_button = $('#main_button');</pre>
<p>#7 &#8211; CSS Sınıflarından Önce HTML Etiketlerini Belirtin.</p>
<p>Eğer HTML etiketlerine göre arama yaparsanız, jQuery tarayıcınızın kendi içindeki getElementbyTagName() fonksiyonunu kullanır. I&#8217;Dye göre arama yapmak nu yöntemde hala hızlıdır fakat, CSS sınıfına göre seçim yaparken sınıfın önünne HTML tagını getirerek aram yapmak, sadece CSS sınıfını belirtmekden hızlıdır.</p>
<pre class="brush:html">&lt;ul id="Urunler"&gt;

&lt;li&gt;&lt;input class="Stok" name="item" type="radio" value="Urun 1" /&gt; Urun 1 &lt;/li&gt;

&lt;li&gt;&lt;input class="Yok" name="item" type="radio" value="Urun 2" /&gt; Urun 2 &lt;/li&gt;

&lt;li&gt;&lt;input class="Bilinmiyor" name="item" type="radio" value="Urun 3" /&gt; Urun 3 &lt;/li&gt;

&lt;/ul&gt;</pre>
<p>Burada önemli olan CSS sınıfının ait olduğu elementin, HTML etiketini seçim sorgusuna eklemek, bu seçim işleminin tüm nesneler arasında dolaşma süresini azaltacaktır.</p>
<pre class="brush:javascript">var in_stock = $('#Urunler input.stok');</pre>
<p>Görüldüğü üzere; Seçim işlemine <em>Urunler ID</em>&#8217;sine sahip listeden başladık, sonra<em> input.stok</em> ile <em>stok</em> css sınıfında tanımlanmış bütün <em>input </em>nesnelerini seçmesini istedik. Eğer <em>#Urunler</em> yazmış olmasaydık, arama işlemi bütün sayfayı kapsıyacak ve sonucun bulunma süresini etkileyecekti. Aynı şekilde sadece CSS sınıfını yazmış olsaydık, sayfadaki bütün nesneler incelenecek ve <em>stok </em>css sınıfına ait olan nesne döndürülecekti.</p>
<h2>#8 &#8211; jQuery Nesnelerini Arabelleğe Alın (Caching).</h2>
<p>Bir nesnenin üzerinde işlem yapmadan önce onu tanımlamak ve gerekli değişiklikleri yaptıkdan sonra sahneye almak, performans açısından etkili bir yöntemdir. Örneğin: aşağıdaki gibi bir kod yazmak yerine:</p>
<pre class="brush:javascript">&lt;li&gt;Description: &lt;input type="text" name="description" value="" /&gt;&lt;/li&gt;

...

$('#shopping_cart_items input.text').css('border', '3px dashed yellow');

$('#shopping_cart_items input.text').css('background-color', 'red');

$('#shopping_cart_items input.text').val("text updated");</pre>
<p>Nesne doğrudan bir değişken olarak tanımlanıp, özellikleri belirlenebilir.</p>
<pre class="brush:javascript">var input_text = $('#shopping_cart_items input.text');

input_text.css('border', '3px dashed yellow');

input_text.css('background-color', 'red');

input_text.val("text updated");

//yukarıdakinin aynısı, sadece komutlar zincirleme yazılmış.

var input_text = $('#shopping_cart_items input.text');

input_text

.css('border', '3px dashed yellow')

.css('background-color', 'red')

.val("text updated");</pre>
<h2>#9 &#8211; Bazı jQuery Fonksiyonlarınızı $(window).load Olayı İçerisine Yazın.</h2>
<p>Birçok jQuery örneği ve açıklaması bizi kodumuzu <em>$(document).ready</em> olayı içerisine yazmaya yöneltir. Çoğu zaman bu hareket doğrudur fakat bu olay sadece nesneler oluşturulduğunda ve muhtemelen sayfa içeriğinin hala sunucudan indirildiği sırada meydana gelir. Bu nedenle animasyon, sürükle-bırak, gizli resimlerin çekilmesi gibi bazı, görsele dayalı fonksiyonlar doğru çalışmayabilir. $(window).load olayı, bazı şartlara bağlı olan bu nesnelere erişmeye garanti verdiği için kullanılması faydalı olabilir.</p>
<pre class="brush:javascript">$(window).load(function(){

// Sayfa yüklendikden sonra çalışacak kod bloğunu buray yazın.

});</pre>
<h2>#10 &#8211; Kodunuzu Daha Okunabilir Kılmak, Şık Göstermek ve Seçicileri Sınırlandırmak için Zincirleme Kod Yazımını Deneyin.</h2>
<p>Çünkü JavaScript zincir gibi, peşpeşe gelen ve hatta ayrı satırlara yazılmış, birbirinin devamı niteliğinde olan kodları anlayabilir ve çalıştırabilir.</p>
<p>Örnek olarak; aşağıdaki kod bir element&#8217;den bir CSS sınıfını kaldırıp, hemen arkasından aynı elemente başka bir CSS sınıfı bağlar.</p>
<pre class="brush:javascript">$('#Urunler input.stok')

.removeClass('stok')

.addClass('Yok');</pre>
<p>Eğer gerekli olursa, jQuery bu zincirleme fonksiyonları tek bir fonksiyon haline getirmenizi de destekler.</p>
<pre class="brush:javascript">$.fn.YokYap = function() {

return $(this).removeClass('stok').addClass('yok');

}

$('#Urunler input.stok').YokYap().log();</pre>
<p>Kurtman Çelik<br />
kurtmancelik.wordpress.com<br />
<strong>Kaynak: <a href="http://www.tripwiremagazine.com/tutorials/tutorials/jquery-and-general-javascript-tips-to-improve-your-code.html" target="_blank">http://www.tripwiremagazine.com/tutorials/tutorials/jquery-and-general-javascript-tips-to-improve-your-code.html</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/genel/jquery-kullaniminizi-gelistirmek-icin-oneriler.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.Net ve Jquery İle Tab Uygulaması</title>
		<link>http://www.ceturk.com/web-teknolojileri/aspnet-ve-jquery-ile-tab-uygulamasi.html</link>
		<comments>http://www.ceturk.com/web-teknolojileri/aspnet-ve-jquery-ile-tab-uygulamasi.html#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:00:21 +0000</pubDate>
		<dc:creator>Olcay KÜK</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>
		<category><![CDATA[Örnek Kodlar]]></category>
		<category><![CDATA[asp.net örnek]]></category>
		<category><![CDATA[JQuery örnek]]></category>
		<category><![CDATA[olcay kük]]></category>
		<category><![CDATA[Ruin]]></category>
		<category><![CDATA[Tab Menü]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=2284</guid>
		<description><![CDATA[ASP.NET kullanılarak JQUERY ile Tab menü yapımı ve her tab içerisine programlamatik olarak veri çağıran örnek bir uygulamadır.
Örneği ekleyen üyemiz :   Olcay Kük
]]></description>
			<content:encoded><![CDATA[<p>ASP.NET kullanılarak JQUERY ile Tab menü yapımı ve her tab içerisine programlamatik olarak veri çağıran örnek bir uygulamadır.</p>
<p>Örneği ekleyen üyemiz :   <a href="http://www.ceturk.com/etiket/olcay-kuk"><strong>Olcay Kük</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/web-teknolojileri/aspnet-ve-jquery-ile-tab-uygulamasi.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
