Klavye Kırıntıları
Açılan-Kapanan Menü
Dün itibariyle ilk .Net projeme başladım. Biraz geniş bir proje, Sql sorgularından 1 tanesi 3 kb ve sanırım 20 taneye yakın yazarız. Projede frame ve açılan menülere ihtiyacımız vardı. del.icio.us‘ umda tüm divleri kapat diye bir dil olduğu geldi aklıma. Bu arada o kodda bildirgec.org‘ da yer alıyordu, buraya tıklayarak koda ulaşbilirsiniz.
Neyse kodumuza gelelim. Kodumuz yazılış amacı olarak tüm divleri kapatmaya yönelik ve aşağıdaki gibi orjinali ;
function divkapat(islem) {
var tum_divler = document.getElementsByTagName(’div’); //divleri tanımladık
var tum_divler_adet = tum_divler.length;//kaç adet div var ona bakıyoruz
var i; //değişkenimizi tanımladık
for(i=0; i< tum_divler_adet; i++) {
tum_divler[i].style.display = islem
} //bir for döngüsü ile divlerimizin style.display özelliğini divkapat fonksiyonunda gönderdiğim parametre ile değiştirdik.
}
< a href=# onClick=divkapat(’none’); >açkapa< /a>
< a href=# onClick=divkapat(”); >açkapa< /a>
Bu haliyle bir işime yaramıyor .Neden derseniz ; son zamanlarda Tablosuz tasarıma takmış biri olarak, tüm divlerimin kapanması demek sayfanın bembeyaz bir hal alması demektirki bunu hiç istemem. Menü başlıklarını div, açılacak kısımları span olarak tanımladım. Javascript kodumuzuda şu şekilde düzenledim ;
function divkapat(islem,oge,ogeislem) //yukarıdaki koddan farklı ama açıklamasını aşağıda yapacağım
{
var tum_divler = document.getElementsByTagName(’span’);
var tum_divler_adet = tum_divler.length; var i;
for(i=0; i&amp;amp;amp;lt; tum_divler_adet; i++) {
tum_divler[i].style.display = islem
}
document.getElementById(oge).style.display = ogeislem ;
}
İlk kodumuzda fonksiyonumuz tek parametre ile çağrılırken ben bu sayıyı 3 ‘e çıkardım. Sebebine gelmeden önce 1 adet menü örneğinin kodlarınıda yazalım
<div id="1″ class="ac" onclick="divkapat('none','1a','');">bu 1</div>
<span id="1a" class="acilan" style="display: none">Aa 1a alt menu</span>
<div id="2″ class="ac" onclick="divkapat('none','2b','');">bu 2</div>
<span id="2b" class="acilan" style="display: none">Aa 2b alt menu</span>
<div id="3″ class="ac" onclick="divkapat('none','3c','');">bu 3</div>
<span id="3c" class="acilan" style="display: none">Aa buda 3c alt menu </span>
3 parametreli fonksiyon tetikleyicimiz şu satırlarda = onClick=”divkapat(’none’,’1a’,”)”
Neden 3 parametreli,
- 1. parametre tüm spanları kapatıyor.
- 2. parametre işlem yapılaacak olan span Id’sini belirliyor
- 3. parametre, 2. parametrede belirtilen span’ın display değerini alıyor
Sanırım 3. parametrenin boş olduğuna dikkat etmişsinizdir. Başlangıç değer olarak “display:none” alıyorlar, görünür hale getirmek için ” kullanıyoruz. Peki boş göndereceksek neden 3. parametreyi yolluyoruz. İşimizi tam yapmak için açtığımız menülere birerde kapatma butonu bırakırız diye düşünerek yaptım
Kapatma butonun linkide şöyle olacak onClick=”divkapat(’none’,’1a’,’none’)” .
Kullanılabilir haline ulaşmak için Buraya tıklayınız.
Örnek kodları İndirmek için Buraya tıklayınız.

Benzer Yazılar
| Print article | This entry was posted by admin on 07/04/2007 at 11:22 pm, and is filed under Javascript. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |
-
Esat Yılmaz