2012-09-20 13 views
6

तत्व कैसे दिखाई दे रहा है या नहीं (दृश्य-सक्षम क्षेत्र में) के आधार पर मैं तत्व के tabindex को कैसे बदल सकता हूं? मैं इन चीजों में से एक करना चाहता हूं: एक नया सेक्शन दर्ज करने पर वर्तमान tabindex रीसेट करें और उस अनुभाग के तत्वों के लिए नया tabindex असाइन करें। या tabindex कुछ तत्वों को अक्षम और पुन: सक्षम करने में सक्षम हो।छुपा/दृश्य तत्वों के टैबिंडेक्स को अक्षम और पुन: सक्षम कैसे करें?

एचटीएमएल:

<div id="nav"> 
     <a id="firstLink" href="#section1" tabindex="1">Go to section 1</a> 
     <a id="secondLink" href="#section2" tabindex="2">Go to section 2</a> 
    </div> 
    <div id="container"> 
     <div id="section1"> 
      <a href="#" tabindex="3">Specific to section 1</a> 
     </div> 
     <div id="section2"> 
      <a href="#" tabindex="3">Specific to section 2</a> 
     </div> 
    </div> 

मैं लिंक tabbing आदेश केवल अगर उनके अनुभाग दिखाई दे रहा है में होना चाहता हूँ।

सीएसएस:

#container{ 
     overflow: hidden; 
     width: 400px; 
     height: 400px; 
    } 

    #section1{ 
     background: red; 
     width: 400px; 
     height: 400px; 
    } 

    #section2{ 
     background: green; 
     width: 400px; 
     height: 400px; 
    } 

लाइव उदाहरण: http://jsfiddle.net/2UF3n/5/

उत्तर

2

आप गतिशील रूप से जोड़ने के लिए या अपने tabindex मान पर ध्यान नहीं बनाने के लिए किसी भी छिपी हुई फ़ील्ड से disabled="disabled" निकाल सकते हैं।

$("a:hidden").attr("disabled","disabled"); 
+0

लेकिन अगर मैं 'छुपा 'विशेषता का उपयोग नहीं कर रहा हूं तो क्या होगा। मेरे उदाहरण में यह 'ओवरफ्लो: छुपा' वाला कंटेनर है। क्या आप मुझे यह दिखाने के लिए अपना उदाहरण दोबारा तैयार कर सकते हैं कि इसे कैसे शामिल किया जा सकता है? –

+0

आपको छिपे तत्वों का चयन करने के लिए कुछ भेद की आवश्यकता होगी, उस स्थिति में क्योंकि लिंक पर लेने का कोई तरीका नहीं है जो अतिप्रवाह के कारण दिखाया नहीं गया है: छुपा; स्थिति जांच किए बिना ... जो मुझे लगता है कि आप बट से अधिक दर्द करना चाहते हैं उससे निपटना चाहते हैं। : JQuery में छुपा चयनकर्ता उन वस्तुओं का चयन करेगा जो दस्तावेज़ में कोई स्थान नहीं लेते हैं, लेकिन अतिप्रवाह: छुपा; वह पूरा नहीं करता है; वे अभी भी जगह लेते हैं, आप इसे देख नहीं सकते हैं। मैं उन तत्वों को छिपाने का सुझाव दूंगा जिन्हें आपको सीएसएस या jQuery के माध्यम से दिखाई देने की आवश्यकता नहीं है और अतिप्रवाह का उपयोग नहीं किया गया है: छुपा; –

+1

यह बहुत समझ में आता है, लेकिन मेरे वास्तविक प्रोजेक्ट में मेरे पास एनिमेशन का एक अच्छा सौदा है जो 'ओवरफ्लो: छुपा' पर भरोसा करता है। मैं कुछ अलग चयनकर्ताओं को आज़माउंगा और सुझाए गए अनुसार 'अक्षम' विशेषता का उपयोग करूंगा। –

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