2009-04-04 18 views
12

मुझे HTML प्रतिपादन के बारे में एक समस्या से मुलाकात हुई।एक डीआईवी फोकस करने के लिए कैसे?

आईई 7 के डीआईआर = "आरटीएल" दस्तावेज़ में, जब जावास्क्रिप्ट एक डीआईवी तत्व (oElement.focus() विधि के साथ फ़ोकस सेट करने का प्रयास करता है), प्रतिपादन गड़बड़ हो जाता है। संदर्भ बहुत जटिल है, इसलिए मुझे लगता है कि डीआईवी को अयोग्य बनाने का सबसे आसान फिक्स है?

क्या डीआईवी को ध्यान केंद्रित करने का कोई तरीका नहीं है?

+0

संभव डुप्लिकेट [किसी HTML तत्व गैर फ़ोकस करने योग्य बनाने के लिए?] (Http://stackoverflow.com/questions/9152096/how-to-make-an-html-element-non-focusable) – thSoft

उत्तर

19

<div> फोकस प्राप्त जब तक आपके पास करने में सक्षम नहीं होना चाहिए जोड़ा tabIndex

आप tabIndex को शामिल किया है, तो आप इसे से

document.getElementById("yourElement").removeAttribute("tabIndex"); 
+1

मुझे पता है कि यह बहुत पुराना है, लेकिन मेरे अनुभव से पता चला है कि फ़ायरफ़ॉक्स एक div को फोकस करने की अनुमति देगा भले ही उसके पास टैब इंडेक्स न हो। (बस अन्य googlers के लिए एक एफवाईआई के रूप में जोड़ा गया।) – Vaccano

+0

ध्यान दें कि 'contenteditable =" true "के साथ divs भी फोकस प्राप्त कर सकते हैं। – 10basetom

6

मुझे यकीन है कि अगर आप एक तत्व 'अन-फ़ोकस करने योग्य' कर सकते हैं नहीं कर रहा हूँ, लेकिन आप निश्चित रूप से अपने blur विधि का उपयोग कर समय में एक विशिष्ट बिंदु पर यह गैर-ध्यान केंद्रित कर सकते हैं:

document.getElementById("myElement").blur(); 

संपादित करें:

मुझे लगता है कि आप इसे ध्यान केंद्रित करते समय हर बार इसे रोककर 'गैर-फोकस करने योग्य' तत्व बना सकते हैं।

document.getElementById("myElement").onfocus = function() { 
    this.blur(); 
}; 

... या (अपने HTML में इनलाइन जावास्क्रिप्ट का उपयोग करते हुए):: आप के माध्यम से ऐसा कर सकते हैं

<div onfocus="this.blur();"></div> 

स्टीव

+0

इसे धुंधला करने के लिए, इसका मतलब है कि फोकस पहले से ही है, है ना? इस पर सेट करने के लिए फ़ोकस को अक्षम कैसे करें? –

+0

मुझे यकीन नहीं है कि तत्व 'अन-फोकस करने योग्य' बनाना संभव है या नहीं। सावधानी से अपना प्रश्न न पढ़ने के लिए खेद है! –

18

इसके अतिरिक्त, हटाने आप unfocussable के रूप में एक focussable तत्व (प्रपत्र इनपुट तत्वों आदि) बनाना चाहते हैं चाहिए। आप सेट कर सकते हैं:

tabIndex = "-1" 

document.getElementById("yourElement").setAttribute("tabIndex", "-1"); 
0

नीचे कुछ रास्ता jQuery का उपयोग कर DIV unfocusable बनाना है।

// Set the tabindex atribute to -1. 
     1)$("divid").attr('tabindex','-1'); 
    // Remove the tabindex atribute if exists. 
     2) $("divid").removeAttr('tabindex'); 
    // This is third way. 
     3) $("divid").blur(); 
की
संबंधित मुद्दे