jQuery etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
jQuery etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

25 Eylül 2012 Salı

jQuery Plugin'i yazma



jQuery, hemen hemen bütün browserlar (tarayıcı) üzerinde çalışan bir JavaScript kütüphanesidir. Bu kütüphane; kod yazma sürecini azaltma, hemen hemen tüm tarayıcılarla uyumlu olma gibi faydalarının yanı sıra kullanıcılara kendi plugin’lerini (eklenti) geliştirme olanağı da sağlar.

Yazılan pluginlerin dosya ismi de genellikle “jquery.plugin_ismi.js” şeklinde olur. Bu plugini kullanabilmek için web sayfasına (html, asp, aspx, jsp vb.) ilk önce jQuery kütüphanesi eklenmeli daha sonra da yazılmış olan ve yukarıdaki gibi isimlendirilerek kaydedilmiş olan plugin’in JavaScript dosyası eklenmelidir.

jQuery’de plugin yazılabilmesi için “jQuery.fn” nesnesine bir property eklenmesi gerekmektedir. Eklenen bu property’nin ismi aynı zamanda pluginin ismi de olacaktır.
Bir jQuery plugin şablonu aşağıdaki gibidir:


(function ($) {
    $.fn.plugin_ismi = function () {

        //Plugin kodları

    }
})(jQuery);


Bu jQuery plugini birden fazla HTML elementine de uygulanabilir. Bunun şablonu da aşağıdaki gibidir:

(function ($) {
    $.fn.highlight = function () {
        this.each(function () {

                //Plugin kodları

        });
    }
})(jQuery);

Bunu bir örnek ile anlatmak istersek: Örneğin; üzerine gelince yazının arka plan rengini ve yazının rengini değiştiren bir plugin tasarlayalım.
Bu plugin yazılara uygulanacağından, bazı parçalarına uygulanıp bazı parçalarına uygulanmamak istenebilir. Birden fazla elemente uygulanma ihtimali olduğundan yukarıdaki ikinci şablona göre pluginimizi yazacağız.

(function ($) {
    $.fn.highlight = function () {
        this.each(function () {
            $(this).hover(function () {
                $(this).attr("style", "background-color: Yellow; color: Red;");
            }, function () {
                $(this).removeAttr("style");
            });
        });
    }
})(jQuery);

Bu kod “jquery.highlight.js” ismiyle kaydedilir. Daha sonra web sayfasında “head” tagları içine jQuery kütüphanesi ve yazılan plugin eklenir:

    <script src="Scripts/jquery-1.8.2.js" type="text/javascript"></script>
    <script src="Scripts/jquery.highlight.js" type="text/javascript"></script>

Bu plugin, “lblTest” class’ına sahip bütün elementlere aşağıdaki gibi uygulanır:

$(document).ready(function () {
    $(".lblTest").highlight();
});

Sonuç olarak tüm html kodu aşağıdaki gibidir:

<html>
<head>
    <title>test2</title>
    <script src="Scripts/jquery-1.8.2.js" type="text/javascript"></script>
    <script src="Scripts/jquery.highlight.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $(".lblTest").highlight();
        });
    </script>
</head>
<body>
        <label class="lblTest">
            Eyüp</label>
        <label class="lblTest">
            DALAN</label>
</body>
</html>

Mouse hover'dan önce
 
Mouse hover'dan sonra



11 Ocak 2012 Çarşamba

Bir html elementini, herhangi bir "attribute" değerine göre seçmek

Bazen bir attribute değerine göre HTML elemenleri seçilmek istenebilir. Bu aşağıdaki gibi yapılabilir:

Örneğin aşağıdaki gibi HTML kod parçamız olsun: 
<ul class="tabs">
     <li id="tab1" deger="tabBir">
     <li id="tab2" deger="tabIki">
</ul>

Yukarıdaki kodda "deger"in "tabBir" olduğu elementi seçmek istersek:
$('[deger="tabBir"]')
"deger" değişkeni sadece "li" elementlerinde bulunmayabilir. Bu nedenle "deger" değişkeninin "tabBir" olduğu "li" elementlerini bulmak istersek:
$('li[deger="tabBir"]')

1 Ocak 2012 Pazar

Basit ama lazım olabilecek şeyler (jQuery)

Bir sayfadaki tüm "x" (div, table, ul, li vb.) elementlerinin yakalanması: (by tag)
$('x')
Örnek: $('div')
Bir sayfadaki sınıfı "y" (baslik, h1 vb.) olan "x" (div, ul vb.) elementlerinin yakalanması:
$('x.y')
Örnek: $('div.baslik')
Bir sayfadaki "y" (baslik, h1 vb.) sınıfına ait elementleri yakalama: (by class)
$('.y')
Örnek: $('.baslik')
Bir sayfadaki "z" ID'sine sahip elementleri yakalama: (by ID)
$('#z')
Örnek: $('#altBaslik')
Bir sayfadaki ID'si "z" olan "x" (div, ul vb.) elementlerini yakalama:
$('x#z')
Örnek: $('div#altBaslik')
Bir elementin torunu (descedant) olan elementleri yakalama:
a: ata
b: torun
$('a b')
Örnek: $('table td')
Bir elementin çocuklarını (children) yakalama:
a: ata
b: çocuk
$('a > b')
Örnek: $('tr > td')
Bir sayfadaki ilk "x" elementini yakalama:
$('x:first')
Örnek: $('li:first')
Bir sayfadaki son "x" elementini yakalama:
$('x:last')
Örnek: $('li:last')
Bir "a" nesnesini başka bir "b" nesnesinin önüne almak:
$(b).before(a)
Örnek: $('div#altBaslik').before('div.baslik')
"baslik" sınıfına sahip olan div, "altBaslik" ID'sine sahip div'in önüne alınıyor
Bir "a" nesnesini başka bir "b" nesnesinden sonra yerleştirmek:
$(b).after(a)
Örnek: $('div.baslik').after('div#altBaslik')
"altBaslik" ID'sine sahip div, "baslik" sınıfına sahip div'den sonra yerleştiriliyor