JavaScript programlama dili Java platformunun bir parçası değildir.
JavaScript programlama dilinin Java programlama diliyle bazı ortak özellikleri vardır, ama bu dilden ayrı olarak geliştirilmiştir.[Kaynak]
Netscape Navigator 2.0 ile birlikte Brendan Eich tarafından geliştirilen ve önceleri Mocha daha sonra LiveScript olarak adlandırılan ve en sonunda şu anki adını alan JavaScript dili başlangıçta sadece istemci taraflı (client-side) yorumlanan bir web programlama dilidir.[Kaynak]
1995 yılında piyasaya sürülen JavaScript'e muadil JScript Microsoft tarafından 1996 yılında Internet Explorer 3.0 ile birlikte piyasaya girmiştir.
Bununla birlikte istemcilerin kullanımın kapsamını geliştiren bu betik dili istemciler arasındaki stil tanımlarının farklı yorumlanması gibi, farklı yorumlanma sıkıntılarınıda birlikte getirmiştir.
Bu durumdan dolayı yaşanılan sıkıntıları gidermek için 1997 yılının Haziran ayında ilk baskısı yapılan ECMAScript standarlaştırma çalışması başlamıştır.[Kaynak]
Eski istemcilerin kullanılması ve yeni istemcilerin kendilerine özel yeteneklerinin erişimi konularında geliştiriciler halen bu sıkıntıları yaşanamaktadır.
Temel olan bu sorunsallar dışında, geliştiricilerin sürekli ihtiyaç duydukları;
Sonuç olarak;
Javascript kavramında sonuç olarak vurgulanan nedenlerden dolayı bir çok Javascript kütüphanesi ortaya çıkmıştır.
jQuery'de 26 Ağustos 2006 tarihinde ilk sürümünü yayınlamış olmasına rağmen aslında jQuery'i öne çıkaran gerçek değeri olan Pseudo-CSS tanımlayıcılarda kullanılan seçici yaklaşımının Javascript ile kullanılmasına dair kodlarını 22 Ağustos 2005 tarihinde John Resig kendi günlüğü üzerinden yayımlamıştır.[Kaynak]
Kendimize soralım...
Bu fikrini yayımlak ona ne kazandırdı?
Bu ve benzer bir fikrin hiç çıkmadığını varsayalım. Şimdi nasıl yazılım geliştiriyor olurduk?
İstemci farklılıkları hakkında örnekler için impressiveweb.com sitesini ziyaret ediniz.
Bu farklılıklara jQuery ile yaklaşım şu şekilde;
CSS float değeri
$("#alanA").css("float");
$("#alanA").css("cssFloat");
$("#alanA").css("styleFloat");
yukarıdaki tüm stil adları için aynı değer alınır.
$(document).mouseover
(
function(oE)
{
$(document).text
(
"X:" + oE.pageX
+ " Y:"+ oE.pageY
);
}
);
Daha iyi bir örnek için api.jquery.com/mousemove 'a bakınız.
$("#hedef").fadeTo("fast", 0.2);
Daha iyi bir örnek için api.jquery.com/fadeTo 'a bakınız.
jQuery'in en basit hali ile yüklenmesi için üç dosya gereklidir.
Bu dosyalar jqueryui.com/download sayfasından hazırlanıp indirilebilir.
jQuery kütüphanesi web sayfamızın HEAD tag'ı içinde şu şekilde tanımlanır;
jQuery çekirdek kütüphanesi kullanım kolaylıkları sağlamak için bazı kısa tanımlar oluşturur.
Aşağıdaki tanımlar jQuery'e ulaşmak için varsayılan olarak kullanılabilir.
window("body").text("jQuery ile erişildi.");
window.jQuery("body").text("jQuery ile erişildi.");
jQuery("body").text("jQuery ile erişildi.");
$("body").text("jQuery ile erişildi.");
Bazı kütüphanelerdeki genel tanımlamalar ile çalışan durumlar oluşabilir.
Bu durumlarda jQuery'nin $ gibi kısa ifadelerini aşağıdaki gibi değiştirmemiz gerekir.
var emJQ = jQuery.noConflict(true);Örneği incelemek için burayı tıklayın.
Hikaye'de de vurgulandığı gibi jQuery'nin kendine özgü değeri Pseudo-CSS tanımlayıcılarda kullanılan seçici yaklaşımının Javascript ile kullanılması ve ek özelliklerinin eklenmedir.
jQuery seçicileri birlikte kullanıldığı gibi alanlarına göre şöyle sınıflandırılabilir;
$("input").hide("slow");
$("textarea").hide("slow");
/*
Aşağıdaki kod çalıştığı sırada animasyon halindeki
div'in class'ına "parlak" class'ı eklenir, varsa kaldırılır.
*/
$("div:animated").toggleClass("parlak");
//değeri boş olan input nesnelerine kırmızı bir çerçeve atar.
$("input[value='']").css("border", "1px solid red");
//DOM içindeki en son DIV içindeki ilk nesnenin yazı tipini kalın yapar.
$("div:last>:first").css("font-weight", "bold");
jQuery.fn sınıfı kendi eklentilerinizi yazabileceğiniz bir araç olarak kullanabilirsiniz.
Bu sınıfa bir eklenti eklemek için iki yazılım kalıbı kullanılabilir.
Bunlar;
// A Kalıbı
jQuery.fn.uyariVer = function(sMesaj)
{
alert("Uyarı" + sMesaj);
};
// B Kalıbı (Önerilen; çünkü bu şekilde diğer kütüphanelerdeki $ gibi ifadeler nedeniyle bir karışıklık olmaz.)
(
function($)
{
$.fn.uyariVer = function(sMesaj)
{
alert("Uyarı" + sMesaj);
};
}
)( jQuery );
Daha fazla bilgi için docs.jquery.com/Plugins/Authoring'a bakınız.
Kullanıcı arabirimleri jQuery çekirdeği üzerinde etkileşimler ve css tanımlarını kullanan araçlardan oluşur.
Etkileşimler
jQuery kullanıcı arabirimleri ile gelen özellikler sayesinde "daha az yazarak, daha çok" içerik sunulması sağlanabilmektedir.
Temelde prototip kavramlı bu yaklaşım ile var olan tasarıma birkaç jQuery kodu yazılması ile kullanıcı deneyimini arttıran tasarımlar elde etmek mümkün olur.
PHP ve ASP kodlarının kütüphanelerin oluşması ile html kodlarından ayrılması ve .NET gibi platformlarda CodeBehind kavramlarının gelmesi gibi jQuery'de istemci tarafında çalışan betiklerin DOM nesnesinden kısmen ayrılmasını sağlayabilmektedir.
Bu ham html nesnelerin CSS ile şekillendirilmesinde olduğu gibi istemci kodlamayı tamamen ayrılmasına olanak sağlar.