मैं ड्रॉप डाउन मेनू कीबोर्ड को सुलभ बनाने के लिए तर्क को समझने पर अटक गया हूं। ,jQuery पता लगाता है कि क्या माता-पिता ने 'फोकस' खो दिया है
<ul>
<li class="primaryMenuItem">
<a href="">Link 1</a>
<ul class="popUpMenu">
<li><a href="">Sub Link 1</a></li>
<li><a href="">Sub Link 2</a></li>
</ul>
</li>
<li class="primaryMenuItem">
<a href="">Link 2</a>
<ul class="popUpMenu">
<li><a href="">Sub Link 1</a></li>
<li><a href="">Sub Link 2</a></li>
</ul>
</li>
</ul>
लिंक 1 लिंक 2 और, जब hovered उप-मेनू सूचियों दिखाने (पुल डाउन मेनू) होगा:
एचटीएमएल ऐसे (अतिरिक्त वर्ग स्पष्टता के लिए उपयोग होने वाले नाम) के रूप में जाना जाता है। मैं यह कुछ jQuery और jQuery होवरइन्टेंट प्लगइन के साथ बस ठीक काम कर रहा है।
पकड़ यह है कि यह इस समय माउस के साथ ही काम करता है।
कुंजीपटल के माध्यम से इसे काम करने के लिए अगली चुनौती है।
$('ul.primaryMenuItem a:first').focus([call showMenu function])
यह ठीक काम करता है:
मैं आसानी से शीर्ष स्तर लिंक है कि तब माध्यमिक मेनू को गति प्रदान करने ध्यान देने के घटना जोड़ सकते हैं।
मेनू को बंद करने के लिए, एक विकल्प है, एक और मेनू खोलते समय, यह देखने के लिए जांचें कि क्या कोई और खुला है या नहीं, और यदि ऐसा है, तो इसे बंद करें।
यह भी ठीक काम करता है।
जहां यह विफल रहता है, हालांकि, यदि आपके पास अंतिम मेनू खुला है, और इससे बाहर टैब है। चूंकि आपने किसी अन्य मेनू में टैब्ड नहीं किया है, यह एक खुला रहता है।
चुनौती यह पता लगाना है कि मेन्यू को कब/कब बंद करना है और तर्क को जानने के लिए तर्क (jQuery) को समझना है। आदर्श रूप से, जब मेनू पर किसी तत्व पर फ़ोकस होता है तो मेनू के किसी भी बच्चे के अलावा मैं मेनू बंद कर दूंगा।
तार्किक रूप से, मैं इस बात के लिए देख रहा हूँ:
$('li.primaryMenuItem').blur([close $(this).find('ul.popUpMenu'))
हालांकि, अगर आप ऐसा कर सकते हैं नहीं है, क्योंकि LI है वास्तव में ध्यान केंद्रित करने की जरूरत नहीं है, लेकिन यह के भीतर बल्कि एंकर टैग।
कोई सुझाव?
अद्यतन:
शायद एक बेहतर/आसान सवाल पूछने के लिए रास्ता:
वाया jQuery, वहाँ 'दृश्य' के लिए एक रास्ता है, तो फोकस एक विशेष वस्तु के सभी बच्चों के बाहर ले जाया गया है देखने के लिए है ? focusin
और blur
और focus
के बजाय focusout
:
उसमें कोई लेखन त्रुटि है? '$ ('ul.primaryMenuItem a: first')। फोकस ([कॉल शोमेनू फ़ंक्शन])' -> '$ ('li.primaryMenuItem a: first')। फोकस ...' – superjos