

Bir Kaç Javascript Numarası (Açılan Menü, Arguments)
-
Açılan menüler konusunda sıkıntım vardı.Tam istediğimi bulamadım ve tonla javascript olayı gerçekleştirmek gerekiyordu.Gerçekten canımı sıktı.Select olayını koydum, oda problemliydi.O zaman iş başa düştü.
Jquery ile hallettim.Şimdi ;
herhangi bir yerden menü açılsın istiyoruz (o yerin idsi vs..si olması laızm elimizde)
kodlar: http://paste.org/43838
çalışan örnek : http://ayrox.bplaced.net/tbt/
Şimdii...
---
basla fonksiyonumuza bile bile a,b dedim ki, herhangi birşey için yapabilirsiniz.Yani bütün açılan menülerde ; herhangi bir yerden basla(a,b) ile yapabilirsin.
a = açılmasını istediğin div (altından açılır)
b = açılmasını istediğin menu (menümüz)$(window).resize() kısmını yapmak zorundayım, yoksa bi kere açıldıktan sonra biri pencereyi mıncıklar, işler değişir.Bu yüzden hiççç uğraşmadan onu ekledim.
Kolay basit, işe yarar...Gelelim ne nedir =
----------
div.offset(); ile ilgili div'in pozisyonunu aldık.Bunu değişkene atadık .
Daha sonra açılan menü'nün değerlerine eklememiz gerekyiordu..Değişken.left ve değişken.top kullandım.Değişken.right , değişken.bottom vs.. kullanılabilr.(ayrıntılı bilgi jquery offset).
Fakat olduğu gibi kullanırsam, bizim menümüzde problem çıkacka çünkü tam olarak üstüne yapışacaktı.Biraz oralamak için left değerinden 10px azalttım, top değerine 25 pixel ekledim.
--------------
2. trick Arguments
ayrıca fonksiyonlar fazlasıyla iğrençleşti çalıştığım projede.Tek özellik için 3-4 fonksiyon yazmam gerekiyordu.Gonderi1 gonderi2 şeklinde yapacağıma ;
function goderi() yaptım.Burda
ne gönderirsek gönderelim kabul edecektir.Yani function('a',b,c,d,e,f,y,g) sonsuz argument gönderebiliriz.Bunları alabilirizde.Ben ilk argument'e özellik, diğerlerine ise gerkeneleri yazdım.Şöyle yapabiliriz ;
function gonderi(){
if(arguments[0]=='özellik1'){ yapılacaklar }
elseif ....}
bu şekilde arguments sonsuza kadar gider.Başlangıcı 0 'dır.Ayrıca uzunluığunu öğrenmek isterseniz ;
function gonderi(){ alert(arguments.length); }
işe yarayacaktır.Length , javascriptte sıkça kullanılıyor.İşe yarar mı yaramaz mı bilmiyorum ama, birgün arayan çıkar herhalde.Devamını yazabilirim bir ara...şimdi proceye devam
-
Ne den bu kadar uğraştığını anlamadım. Örnekte ki gibi bir şey yapmak bu kadar basit :|
$(document).ready(function(){ $(".menu a").hover(function() { $(this).next("div").animate({opacity: "show", top: "40"}, "slow"); }, function() { $(this).next("div").animate({opacity: "hide", top: "45"}, "fast"); }); }); -
Fuzulli bunu yazdı:
-----------------------------Ne den bu kadar uğraştığını anlamadım. Örnekte ki gibi bir şey yapmak bu kadar basit :|
$(document).ready(function(){ $(".menu a").hover(function() { $(this).next("div").animate({opacity: "show", top: "40"}, "slow"); }, function() { $(this).next("div").animate({opacity: "hide", top: "45"}, "fast"); }); });
-----------------------------hocam iyi güzelde o top her zaman 45-40 ta olmazsa ne olacak ? bir sürü değişken var sonuçta ?tek fonksiyonla, sitenin 3-4 yerindeki menüyü idare edebilyiorum.
gerçi top: "40" kısmında a.height yazılabilir .. oda olur.