2012-08-03 18 views
8

मेरे पास अनियंत्रित सूची है जिसे मुझे उपयोगकर्ता के क्लिक पर विस्तार/पतन करने की आवश्यकता है।विस्तारित पतन का विस्तार करें

<ul> 
    <li><a href=#">Gunsmithing</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/16-barrel-threading.aspx">&nbsp;Barrel threading</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/17-barrel-cut-recrowning.aspx">&nbsp;Barrel Cut & &nbsp;&nbsp;Recrowning</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/19-gun-cleaning.aspx">&nbsp;Gun Cleaning</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/18-rifle-bedding.aspx">&nbsp;Rifle Bedding</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/20-scope-installation.aspx">&nbsp;Scope Installation</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/21-scope-sight-in.aspx">&nbsp;Scope Sight-in</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/22-trigger-job.aspx">&nbsp;Trigger Job</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/23-gun-accurization.aspx">&nbsp;Gun Accurization</a>&nbsp;&nbsp;</li> 
    <li><a href="../topic/24-engraving.aspx">&nbsp;Engraving</a>&nbsp;&nbsp;</li> 
</ul> 

तो जब उपयोगकर्ता लिंक Gunsmithing पर क्लिक करता है, आइटम नीचे का विस्तार करना चाहिए/संक्षिप्त करें: इस सूची में है।

मैं इसे कैसे प्राप्त कर सकता हूं? धन्यवाद, Laziale

उत्तर

24

HTML:

<ul class="list"> 
     <li> 
      <a>Rifles</a> 
      <ul> 
       <li>M16</li> 
       <li>MP5</li> 
       <li>AR15</li> 
       <li>M16A1</li>    
      </ul>     
     </li> 

     <li> 
      <a>Guns</a> 
      <ul> 
       <li>Magnum</li> 
       <li>Colt</li>  
      </ul>     
     </li> 
    </ul>​ 

जे एस:

$('.list > li a').click(function() { 
     $(this).parent().find('ul').toggle(); 
    });​ 

http://jsfiddle.net/mtCWr/2/

+0

बहुत उपयोगी। Jsfiddle.net उदाहरण करने के लिए समय निकालने के लिए धन्यवाद। वास्तव में इसे स्पष्ट कर दिया। –

+1

आपका स्वागत है! –

+2

यह केवल दो स्तरों के लिए काम करता है। यदि आप इसे तीसरे, चौथे, पांचवें स्तरों पर गहराई से लागू करना चाहते हैं, तो '$ (यह)। माता-पिता()। बच्चों ('ul') का उपयोग करें। टॉगल();' '($) के बजाय। माता-पिता()। ढूंढें ('उल')। टॉगल(); '('बच्चों' के साथ 'ढूंढ' को प्रतिस्थापित करें)। यहां काम करने वाली पहेली है -> http://jsfiddle.net/mtCWr/2075/ –

3

मैं उन लिंक की सूची घोंसले से शुरू करूंगा जिन्हें आप छिपाना चाहते हैं। कुछ इस तरह:

<ul class='main'> 
<li>main item -click to show subs 
    <ul> 
    <li>sub1</li> 
    <li>sub2</li> 
    ... 
    </ul> 
</li> 
... 
</ul> 

तो आप में सीएसएस आप डिफ़ॉल्ट रूप से बाद के चरणों छिपा सकते हैं:

ul.main > li > ul { 
display: none; 
} 

फिर मुख्य आइटम के क्लिक पर कि शैली बदलने के लिए जावास्क्रिप्ट है। jQuery कुछ इस तरह दिखेगा:

$('ul.main li').click(function() { 
    $(this).children('ul').toggle(); 
}); 

टिप्पणी यह ​​सिर्फ कुछ त्वरित स्यूडोकोड है, लेकिन यह है कि ट्रैक पर रखना चाहिए ...

संबंधित मुद्दे