2011-10-24 14 views
5

jQuery'yi kullanarak, mevcut sayfaya karşılık gelen "basılan" düğmenin "basılmamış" düğmesinden farklı şekilde hareket ettiği bir renk solma gezinme menüsü yapmak istiyorum (özellikle, o değil) yanmaya başladıktan sonra farklı bir renge dönüşür). Örneğe www.guitaracademy.nl adresinden bakarsam, window.location.hash özelliği ile yerel javascript kullandıklarını görüyorum. Ancak, bu hash’ın jQuery’ye dönüştürülmesini sağlayamıyorum. Örnek bir komut dosyası:jQuery içinde window.location.hash öğesini kullanma

<html> 
<head> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function(){ 
    var p=window.location.hash; 
    $("#clickme").click(function(){ 
     alert(p) 
    }); 
}); 
</script> 
</head> 
<body> 
<a href="#test">Click me first</a> 
<div id="clickme">Then click me</div> 
</body> 
</html> 

Bu sayfayı yükledikten sonra "Önce bana tıkla" bağlantısını tıklıyorum; daha sonra adres çubuğuna orjinal URL'ye ekli olan "#test" görüyorum. Ancak, sonra "Sonra beni tıklayın" div 'ı tıklarsam boş bir uyarı görürüm. Karma 'güncelleme' gibi değil gibi görünüyor.

Bu konuda herhangi bir yardımı çok isterim.

cevap

5

Çağıran çağrıyı, her bir tıklama çağrıldığında çağrılacak şekilde işlevin içine taşımayı deneyin. Olduğunuz gibi, sadece sayfanın ilk yüküne yükleniyordu.

$(function(){ 
    $("#clickme").click(function(){ 
     var p=window.location.hash; 
     alert(p) 
    }); 
}); 
+0

İkaz bildirgesinin hemen üstünde, evet, işe yaradı, hepinize (yakınsama) cevaplarınız için teşekkürler! –

0

#clickme div işleviniz hiçbir zaman karma durumunu güncelleştirmeyi denemez.

<script type="text/javascript"> 
    $(function(){ 
     $("#clickme").click(function(){ 
      var p=window.location.hash; 
      alert(p) 
     }); 
    }); 
</script> 
1

: Eğer karma güncellemek için kodunuzu bekliyorduk Eğer isterseniz manipüle gerekecek durumda 'p' değişkeni güncellenmiyor. İşte atama deyimi

var p=window.location.hash; 

sadece bir kez sayfa yüklendiğinde yürütülür. Yani yükleme anında P değeri boş ve her zaman boş olacaktır. Bunun yerine

alert(p) 

ait

alert(window.location.hash) 

deneyin ya tıklama callback'inde iç atamayı taşıyın.

0

karma upadated oluyor ama bu: tıklama dinleyici içine var p=window.location.hash; koyarak deneyin

$("#clickme").click(function(){ 
    window.location.hash='#secondclick'; 

    //Remaining Code 
}); 
İlgili konular