javascript - कीबोर्ड फोकस को<div> पर सेट करें




jquery html (5)

आप getElementsByClassName उपयोग कर सकते हैं

<div tabindex="0" class="to-focus">TEXT</div>
<script> document.getElementsByClassName('to-focus')[0].focus()</script>

मेरे पास निम्न कोड स्निपेट है:

<div id="listbox1div" style="z-index:95; background:white; overflow-y:auto; overflow-x:hidden; width:240; height:314px;">
<a id="focusLink2"></a>
<table id="ptObj_listbox1...

मेरे पास एक पृष्ठ है जो <div> तत्वों को गतिशील रूप से बना रहा है (जैसे ऊपर)। यह <div> मुख्य स्क्रीन के शीर्ष पर डेटा प्रदर्शित करता है। जब पृष्ठ divs उत्पन्न करता है तो मैं फोकस सेट करना चाहता हूं। मैं बॉडी टैग पर ऑनलोड फ़ंक्शन नहीं डाल सकता क्योंकि मुझे नहीं पता कि divs कब उत्पन्न होगा।

एक <div> टैग पर सीधे फोकस सेट नहीं हो सकता है। इसलिए मैंने एक आईडी के साथ एक खाली <a> टैग लगाया है जिसे मैं निम्नलिखित फ़ंक्शन में कॉल कर रहा हूं:

function setTableFocus(count){
        var flinkText = 'focusLink'+count;
       document.getElementById(flinkText).focus();
}

मुझे कोई त्रुटि नहीं मिल रही है और मुझे पता है कि पेज प्रस्तुत होने पर फ़ंक्शन को कॉल किया जा रहा है (अलर्ट के माध्यम से)। हालांकि, जब मैं तीर कुंजियों का उपयोग करता हूं या बटन दर्ज करता हूं तो पूरा पृष्ठ चलता है (यहां तक ​​कि डेटा प्रस्तुत करने वाला div भी नहीं)।

जब मैं तालिका तत्वों में से किसी एक पर क्लिक करता हूं (माउस का उपयोग करके)। उसके बाद कीडाउन घटना काम करना शुरू कर देती है। मैं यह करना चाहता हूं कि उपयोगकर्ता को डेटा प्रस्तुत करना और स्वचालित रूप से कीबोर्ड संचालित होना है।

क्या किसी के पास कोई सुझाव है कि मैं इसे कैसे पूरा कर सकता हूं?


आप एक div पर ध्यान केंद्रित नहीं कर सकते हैं। क्या आपका मतलब इनपुट पर ध्यान देना है?

वैसे भी, आप HTML में कुछ सही ध्यान केंद्रित करने के लिए एक लघु स्क्रिप्ट टैग शामिल कर सकते हैं - बस div के बाद या यहां तक ​​कि div के अंदर भी स्क्रिप्ट डालें।


क्या आपका मतलब है कि जब भी यह उत्पन्न होता है तो आप divs पर ध्यान केंद्रित करना चाहते हैं? इनके लिए पुन: खोज करने का प्रयास करें

http://api.jquery.com/focus/

तथा

http://api.jquery.com/live/

और कीप्रेस के लिए ..

http://api.jquery.com/keypress/

afaik divs और अन्य तत्वों को विकी जैसे कुछ प्रकार का ध्यान केंद्रित कर सकते हैं, जैसे ..

http://en.wikipedia.org/wiki/JavaScript#Cross-site_vulnerabilities

और यह स्वचालित रूप से वहां स्क्रॉल करेगा। मुझे यकीन नहीं है कि कैसे।

गतिशील रूप से जेनरेट किए गए divs और तालिकाओं के लिए आप jquery के लाइव () फ़ंक्शन का उपयोग कर सकते हैं


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

Response.Write "
<script language='text/javascript'>
document.getElementById('div#').scrollIntoView();
</script>
"

यदि आप एक tabindex विशेषता जोड़ते हैं तो आप एक div फोकस कर सकते हैं।

देखें: http://snook.ca/archives/accessibility_and_usability/elements_focusable_with_tabindex

Tabindex मान कुछ रोचक व्यवहार की अनुमति दे सकता है।

  • यदि "-1" का मान दिया गया है, तो तत्व को टैबबैड नहीं किया जा सकता है लेकिन तत्व को प्रोग्रामेटिक रूप से फोकस दिया जा सकता है (element.focus () का उपयोग करके)।
  • यदि 0 का मान दिया गया है, तो तत्व को कीबोर्ड के माध्यम से केंद्रित किया जा सकता है और दस्तावेज़ के टैबबिंग प्रवाह में पड़ता है।
  • 0 से अधिक मान प्राथमिकता स्तर बनाते हैं 1 सबसे महत्वपूर्ण होने के साथ।

अद्यतन: http://jsfiddle.net/roberkules/sXj9m/ पर एक साधारण डेमो जोड़ा गया





setfocus