2011-01-13 4 views
8

डिफ़ॉल्ट रूप से, विस्तार/पतन को नियंत्रित करने के लिए सामग्री के शीर्षलेख हैं। लेकिन मेरी स्थिति में, मैं अन्य तत्वों द्वारा सामग्री को विस्तार/संक्षिप्त भी कर सकता हूं। उदाहरण के लिए:क्या मैं अन्य तत्वों पर क्लिक करके JQuery ui Accordion की सामग्री को विस्तार/संक्षिप्त कर सकता हूं?

jQuery ui accodion कोड की बुनियादी संरचना:

<script> 
    $(function() { 
     $("#accordion").accordion(); 
    }); 
    </script> 



<div class="demo"> 

<div id="accordion"> 
    <h3><a href="#">Section 1</a></h3> 
    <div> 
     <p> 
     Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer 
     ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit 
     amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut 
     odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. 
     </p> 
    </div> 
...... 
</div> 

और अब। मेरे पास एक और तत्व हैं, जैसे:

<ul id="another elements can expand/collapse too"> 
    <li><a href=""> expand/collapse contents of section1 of id=accordion too</a></li> 
........ 
</ul> 

आपको बहुत धन्यवाद !!

उत्तर

5

आप .activate का उपयोग कर प्रोग्राम के सभी तत्वों को ध्वस्त करने के लिए गलत रूप से पारित कर सकते हैं। चूंकि आपके पास एक समय में केवल एक तत्व खुलता है, यह उस लिंक को दिखाए जाने वाले तत्व को खोने के लिए काम करेगा। यह केवल तभी काम करेगा यदि आपके पास collapsibletrue पर सेट है।

आप उस तत्व को विस्तारित करने के लिए विस्तारित करना चाहते हैं, जिसे आप क्लिक करना चाहते हैं।

+1

+1, लेकिन विकल्प अब 'सक्रिय' कहा जाता है केवल – gotqn

9

संक्षिप्त करें अकॉर्डियन टैब:

$('.accordion').accordion('activate', false); 

पहले अकॉर्डियन टैब का विस्तार करें:

$('.accordion').each(function (idx, item) { 
    if ($(item).accordion("option", "active") === false) { 
     $(item).accordion('activate', 0); 
    } 
}); 
+0

धन्यवाद। आपने मुझे चारों ओर झुकाव से बचाया, और मैं आपके समाधान की बहुत सराहना करता हूं। – Ace

+0

यह टिप मेरे लिए काम किया। +1। मुझे बस इसे बदलना पड़ा: ['$ ('accordion')। Accordion ('option', 'active', false); 'jQuery UI' 1.11'] के लिए '(http://api.jqueryui.com/अकॉर्डियन/# विकल्प सक्रिय)। धन्यवाद! – mhulse

5

मैं मुसीबत संक्षिप्त/विस्तृत डालने के बाद लोड किया गया करने के लिए Accordions हो रही थी करने के लिए। इस मैं इस्तेमाल किया चारों ओर पाने के लिए:

$('#accordionId h3').click(); 

... जो की नकल करता है हैडर क्षेत्र पर क्लिक करके सक्रियण वर्गों टॉगल बाध्य करेगा।

एक हैक की तरह महसूस किया, लेकिन यह काम किया है, बेस्ट।

+0

[इस उपयोगकर्ता की "टिप्पणी"] के अनुसार (http://stackoverflow.com/a/24591516/456814): "* सक्रिय करें 'विधि jquery ui 1.9 के बाद से हटा दी गई है और 1.10+ से हटा दी गई है। इसके बारे में अधिक जानकारी और नया वाक्यविन्यास [jQuery यूआई 1.9 अपग्रेड गाइड] पर पाया जा सकता है (http://jqueryui.com/upgrade-guide/1.9/#deprecated-activate-method) * "हालांकि उस उपयोगकर्ता के अनुसार, मैंने नहीं लिया है खुद को इस मुद्दे को देखने के लिए समय। –

8

JQuery UI के अद्यतन के बाद accordion पर कोई "सक्रिय" विधि नहीं है। सभी accordions तो, संक्षिप्त करने के लिए उपयोग करें:

$('.accordion').accordion('option', {active: false}); 
+0

thx दोस्त, यह मुझे बचाया! – Janpan

+0

एक एकल फलक को भी $: ('accordion') के साथ ध्वस्त कर सकता है। Accordion ('option, {active: false}, idx); - जहां 'idx' आपका फलक नंबर, शून्य-आधारित है। – jomofrodo

0

बूटस्ट्रैप का उपयोग करना:

//To Expand 
    var elem = $(this).find('.accordionElement'); 
    elem.addClass("in"); 
    elem.attr("style",""); 
    elem.attr("aria-expanded",true); 

तो आप का उपयोग कर ढह सकता है:

var elem = $(this).find('.accordionElement'); 
    elem.removeClass("in"); 
    elem.attr("style","height: 0px;"); 
    elem.attr("aria-expanded",false); 
संबंधित मुद्दे