पर केंद्रित है, मुझे एक लाइटबॉक्स टेक्स्टबॉक्स मिला है जो एक एएसपी.NET अपडेट पैनेल से AJAX कॉल का उपयोग करके प्रदर्शित होता है। जब लाइटबॉक्स प्रदर्शित होता है, तो मैं टेक्स्टबॉक्स पर ध्यान केंद्रित करने के लिए लाइटबॉक्स में मौजूद टेक्स्टबॉक्स की focus()
विधि का उपयोग करता हूं।यह देखने के लिए जांच कर रहा है कि कोई DOM तत्व
फ़ायरफ़ॉक्स में, टेक्स्ट बॉक्स में कोई समस्या नहीं होती है। आईई में, पाठ बॉक्स जब तक कि मैं
setTimeout(function(){txtBx.focus()}, 500);
का उपयोग थोड़ा बाद में फोकस विधि आग बनाने के लिए, के बाद डोम तत्व मैं यह सोचते हैं रहा हूँ लोड किया गया है फोकस हासिल नहीं करता है।
समस्या यह है कि, तुरंत उस रेखा से ऊपर है, मैं पहले से ही यह देखने के लिए जांच कर रहा हूं कि तत्व शून्य/अपरिभाषित है, इसलिए ऑब्जेक्ट पहले से मौजूद होना चाहिए यदि वह उस पंक्ति को हिट करता है, तो यह केवल फोकस हासिल करने की अनुमति नहीं देगा किसी कारण से तुरंत।
स्पष्ट रूप से इस समस्या को "ठीक करने" के लिए टाइमर सेट करना यह हल करने का सबसे अच्छा या सबसे शानदार तरीका नहीं है।
var txtBx = document.getElementById('txtBx');
if (txtPassword != null) {
txtPassword.focus();
while (txtPassword.focus === false) {
txtPassword.focus();
}
}
वहाँ किसी भी तरह से एक पाठ बॉक्स इतना ध्यान केंद्रित मैं ऊपर की तरह कुछ कर सकता है कि यह बताने के लिए है: मैं निम्नलिखित की तरह कुछ करने में सक्षम होना चाहते हैं?
या क्या मैं इसे गलत तरीके से देख रहा हूं?
संपादित
स्पष्ट करने के लिए, मैं पृष्ठ लोड पर कोड बुला नहीं कर रहा हूँ। पृष्ठ के शीर्ष पर है, हालांकि यह एक फ़ंक्शन के अंदर है जिसे एएसपी.नेट की असिंक्रोनस पोस्टबैक पूर्ण हो जाती है, जब पेज लोड नहीं होता है।
क्योंकि यह अजाक्स अद्यतन के बाद प्रदर्शित होता है, इसलिए डीओएम पहले ही लोड हो जाना चाहिए, इसलिए मुझे लगता है कि jQuery की $(document).ready()
घटना यहां सहायक नहीं होगी।
क्या विधि अगर आप 0 की देरी के साथ टाइमआउट() सेट करते हैं तो विधि काम करती है? – Aintaer
क्या यह हो सकता है कि स्क्रिप्ट लाइटबॉक्स + टेक्स्टबॉक्स से पहले निष्पादित हो रही है? आप लाइटबॉक्स कैसे खोल रहे हैं? शायद कुछ कोड पोस्ट करें। –
यह निश्चित रूप से संभव है, मुझे यकीन नहीं है कि इसके आसपास काम करने के लिए क्या करना है। –