2012-11-16 13 views
16

कल्पना कीजिए एक Bootstrap collapse 3 भागोंबूटस्ट्रैप संक्षिप्त करें - खोल दी गई id टुकड़ा

<div class="panel-group" id="accordion"> 
    ... 
    <div id="accordionOne" class="panel-heading"></div> 
    ... 
    <div id="accordionTwo" class="panel-heading"></div> 
    ... 
    <div id="accordionThree" class="panel-heading"></div> 
</div> 

वहाँ प्लगइन दिया HTTP fragment identifier खोलने बनाने के लिए एक आसान तरीका है के साथ?

उदाहरण http://myproject/url#accordionTwo दूसरा अकॉर्डियन

उत्तर

31
$("#accordionTwo").collapse('show'); 

दिया HTTP टुकड़ा पहचानकर्ता को खोलने के लिए खुलते हैं, इस प्रयास करें:

$(document).ready(function() { 
    var anchor = window.location.hash; 
    $(".collapse").collapse('hide'); 
    $(anchor).collapse('show'); 
}); 

संपादित करें:

में बार्ट द्वारा बताया के रूप में टिप्पणियां: .collapse को लक्षित करने से सावधान रहें क्योंकि व्यूपोर्ट xs पर यह क्लास नेविगेशन बार के लिए भी उपयोग किया जाता है।

+1

धन्यवाद, मुझे पता है कि मैं इसे जावास्क्रिप्ट के साथ खोल सकता हूं और यहां तक ​​कि बिना कक्षा 'में')। प्रश्न HTTP खंड पहचानकर्ता से खुले भाग को नियंत्रित करने के बारे में है। –

+1

मैंने अपना जवाब संपादित किया। आप '.replace (" # "," ") 'भाग को हटाकर और' $ (एंकर)' –

+1

के साथ दिखाने के लिए तत्व का चयन करके इसे सुधार सकते हैं। 'Collapse' को लक्षित करने से सावधान रहें क्योंकि इस वर्ग का भी उपयोग किया जाता है नेविगेशन बार जब व्यूपोर्ट 'xs' है। – bart

2

वास्तव में सरल और त्वरित के लिए हैश मार्ग लागू करने के लिए, आप की तरह Routie

routie({ 
    accordionOne: function() { 
     $('#accordionOne').collapse('show'); 
    }, 
    accordionTwo: function() { 
     $('#accordionTwo').collapse('show'); 
    }, 
    accordionThree: function() { 
     $('#accordionThree').collapse('show'); 
    } 
}); 
+0

दिलचस्प। मैंने सोचा कि यह मूल रूप से किया जा सकता था :( –

+0

[ऑनशैशचेंज] (https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange) ईवेंट है, लेकिन यह हर ब्राउज़र द्वारा समर्थित नहीं है। यदि आप किसी अन्य निर्भरता को जोड़ने के बिना ऐसा करना चाहते हैं, तो http://stackoverflow.com/questions/2161906/handle-url-anchor-change-event-in-js पर एक नज़र डालें – Kelvin

7

कुछ प्रयास करते हैं, इस लाइन सही हैश

location.hash && $(location.hash + '.collapse').collapse('show'); 
5

फिर भी एक और समाधान खुल जाएगा सकता है थोड़ा छोटे और कॉम्पैक्ट :

$(document).ready(function() { 
    var anchor = window.location.hash; 
    $(anchor).collapse('toggle'); 
}); 
संबंधित मुद्दे