jQuery

2011-10-24 19 views
5

में window.location.hash का उपयोग करना मैं jQuery का उपयोग कर रंगीन फ़ेडिंग नेविगेशन मेनू बनाना चाहता हूं, जिसमें वर्तमान पृष्ठ से संबंधित "दबाया गया" बटन "अप्रत्याशित" बटन से अलग व्यवहार करता है (विशेष रूप से, यह नहीं करता है ' होवरिंग पर एक अलग रंग के लिए फीका)। अगर मैं www.guitaracademy.nl पर उदाहरण देखता हूं, तो मुझे लगता है कि वे window.location.hash प्रॉपर्टी के साथ देशी जावास्क्रिप्ट का उपयोग करते हैं।jQuery

हालांकि, मुझे यह हैश jQuery में नहीं मिल रहा है। यहाँ एक उदाहरण स्क्रिप्ट है:

<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> 

यह पेज लोड करने के बाद, मैं "मुझे पहले क्लिक करें" लिंक पर क्लिक करें; फिर पता बार में मैं मूल URL पर "#test" जोड़ता हूं। हालांकि, अगर मैं "फिर क्लिक करें" div पर क्लिक करता हूं तो मुझे एक खाली अलर्ट दिखाई देता है। ऐसा लगता है कि हैश 'अपडेटिंग' नहीं है।

मैं इस पर किसी भी मदद की सराहना करता हूं।

उत्तर

5

हैश के लिए फ़ंक्शन के अंदर कॉल को स्थानांतरित करने का प्रयास करें ताकि प्रत्येक बार क्लिक को कॉल किया जा सके। जिस तरह से आप थे, यह केवल पृष्ठ के प्रारंभिक लोड पर लोड हो रहा था।

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

हाय, हाँ यह काम करता है, आपके सभी (अभिसरण) उत्तरों के लिए धन्यवाद! –

0

#clickme div के लिए आपका फ़ंक्शन हैश को अपडेट करने का प्रयास नहीं करता है।

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

आपके क्लिक-श्रोता अंदर var p=window.location.hash; डालने का प्रयास करें: आप हैश अद्यतन करने के लिए अपने कोड उम्मीद कर रहे थे, तो आप इसे हेरफेर करने के लिए की तरह होगा मामले परिवर्तनीय 'पी' अद्यतन नहीं हो रहा है।

यहाँ काम बयान

var p=window.location.hash; 

केवल एक बार, जब पेज लोड निष्पादित किया जाता है। तो पी के मूल्य को लोड करने के समय खाली है, और हमेशा यह खाली हो जाएगा।

alert(p) 

के बजाय

alert(window.location.hash) 

कोशिश या क्लिक कॉलबैक अंदर काम चलते हैं। i.e बस अलर्ट स्टेटमेंट

0

हैश upadated हो रही है, लेकिन इस में:

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

    //Remaining Code 
});