/ / Jquery - क्लिक करने योग्य ड्रॉपडाउन मेनू - जावास्क्रिप्ट, jquery, ड्रॉप-डाउन-मेनू

Jquery - क्लिक करने योग्य ड्रॉपडाउन मेनू - जावास्क्रिप्ट, jquery, ड्रॉप-डाउन-मेनू

मैं अपने ड्रॉपडाउन मेनू के साथ एक मुद्दा रहा हूँ।मेरे पास काम करने वाले मेनू का ड्रॉपडाउन हिस्सा है, लेकिन जब मैं एक मुख्य नेविगेशनल लिंक पर क्लिक करता हूं तो यह पैरेंट उल के लिए प्रासंगिक लोगों का अनावरण करने के बजाय सभी सूची आइटम का खुलासा करता है।

मैंने फ़ाइल को jsfiddle पर अपलोड किया है। क्या आप कृपया मेरी मदद करें: http://jsfiddle.net/7rwhP/1/

        <div id="secondary-nav"><!--secondary-nav-->
<ul>
<li><a href="#.html">Current Article</a>
<ul>
<li><a href="#.html">Example 1</a></li>
</ul>
</li>

<li><a href="#.html">Past Articles</a>
<ul>
<li><a href="pages.html">Example 1</a></li>
<li><a href="#.html">Example 2</a></li>
<li><a href="#.html">Example 3</a></li>
</ul>
</li>
<li><a href="#.html">Tradition</a>
<ul>
<li><a href="pages.html">Example 1</a></li>
<li><a href="#.html">Example 2</a></li>
<li><a href="#.html">Example 3</a></li>
</ul>
</li>
</ul>
</div><!--/secondary-nav-->

उत्तर:

जवाब के लिए 0 № 1

आपको अपना जावास्क्रिप्ट संशोधित करने की आवश्यकता है ताकि आप "टी ट्रिगर" न हों slideToggle सब पर ul ul आइटम, और आपको क्लिक श्रोता को एक ली - उपयोग में जोड़ना होगा #secondary-nav ul उस सूची के भीतर क्लिक करने वाले किसी भी आइटम के लिए घटना पर क्लिक करें।

इसे इस्तेमाल करे:

$(document).ready(function(){
$("#secondary-nav li").click(function(){
//slide up all the link lists
$(this).children("ul").slideToggle();
})
})

याद रखें, jQuery में चयनकर्ता सीएसएस चयनकर्ताओं की तरह हैं। जब आप क्लिक इवेंट को बाइंड करते हैं #secondary-nav ul, जब आप उस सूची में कहीं भी क्लिक करेंगे तो यह ट्रिगर हो जाएगा, क्योंकि सभी सूची आइटम वास्तव में उल के बच्चे हैं। आपका मूल क्लिक हैंडलर #secondary-nav ul ul "सभी सूचियों को टॉगल करें जो किसी सूची के बच्चे हैं", लेकिन आप अधिक स्पष्ट रूप से "उस सूची को क्लिक करना चाहते हैं जो कि क्लिक की गई सूची आइटम का एक बच्चा है"।

डेमो


जवाब के लिए 0 № 2

आपको उपयोग करना चाहिए $(this).children()

डेमो

$(document).ready(function(){
$("#secondary-nav li").click(function(){
//slide up all the link lists
$(this).children("ul").slideToggle();
})
});

आपको इस सीएसएस को भी जोड़ना चाहिए

#secondary-nav ul li {
white-space:nowrap;
}

डेमो: सीएसएस से ऊपर आवेदन करने के बाद