2010-11-18 19 views
5

Url'deki karma değeri değiştiren ve ana sayfamdaki bir div ekleyen/kaldırdığım bir işlev var. Bunu yaptım, böylece yeniden yükleme yapmadan bir manevra yapabileceğiniz bir sayfa olabilirdim, ama aynı zamanda insanların belirli bir bölümü işaretleyebilmelerini ve daha sonra tekrar sayfadan geçmelerine gerek kalmadan gitmelerini istedim.window.location.hash yardımı ile işlev

Tüm div'leri kapatan ve karma'ya bağlı olarak belirli div'i açan hash() işlevimi aramayı denediğimde, çalışmaz. Muhtemelen if ifadelerinde doğru olanı bilmiyorum, çünkü hash() işlevine bir alert() koyduğumda, olması gerektiği gibi ortaya çıkıyor.

function hash(){ 
    if (window.location.hash == "dcontact") { 
     removedivs(); 
     InsertContent('dcontact'); 
    } 
    if (window.location.hash == "dhome") { 
     removedivs(); 
     InsertContent('dhome'); 
    } 
} 
hash(); 

Ben söz herşeyi yapmanın muhtemelen daha iyi yolları olduğunu farkındayım, ama bu yapım olacağım sadece web sitesi, ve ben daha az senaryo ne kadar dağınık umurumda değil Sonunda, çalıştığı sürece. koymaz bellek IE itibaren window.location.hash

başında # -

cevap

7

çalışmıyor sebebi gerçek (Sanırım ABD'de bunu bir kiloluk diyoruz) karma sembolüdür üzerinde karma sembolü, bu nedenle bu yapın:

function hash() { 
    var hash = window.location.hash.replace('#',''); 

    if (hash == "dcontact"){removedivs(); InsertContent('dcontact');} 
    if (hash == "dhome"){removedivs(); InsertContent('dhome');} 
} 

Ayrıca sadece InsertContent (hash) çağırarak düşünebiliriz yerine if() her farklı bağlantı için bir yapmaktansa için çok

+0

sayesinde şunları kullanabilirsiniz Yardım, mükemmel çalıştı. – pobrien