दुर्भाग्य से कोई चुनिंदा बॉक्स बंद होने या खुला होने पर जानने के लिए कोई मानक घटना नहीं है, इसलिए आपका कोड जा रहा है विभिन्न ब्राउज़रों के लिए आवास के साथ सुंदर बालों वाली हो। जिसके अनुसार, मुझे लगता है कि यह किया जा सकता है, और मैं कुछ फ़ायरफ़ॉक्स में आप के लिए काम mouseup
घटना का उपयोग कर मिल गया है:
http://jsfiddle.net/FpfnM/50/
Firefox में (और मैं क्रोम संभालने कर रहा हूँ), तो आप जा रहे हैं उस स्थिति को ट्रैक करने की आवश्यकता है जो बहुत सावधानीपूर्वक चयन करें। जब escape
कुंजी दबाया जाता है या blur
ईवेंट होता है, तो आपको इसे बंद करने के रूप में पहचानने के लिए राज्य को अपडेट करने की आवश्यकता होती है। मैंने अपने डेमो में इसे लागू नहीं किया है, और आप देख सकते हैं कि अगर आप चयन को बंद करने के बजाय भागते हैं तो क्या होता है।
सफारी में चीजें आसान थीं, जहां चयन पर mousedown
ईवेंट चयन खोलने का संकेत देता है, और चयन के किसी भी बंद को click
ईवेंट द्वारा इंगित किया जाता है।
यदि आपको ऐसा ब्राउज़र मिलता है जहां इनमें से कोई भी ईवेंट आग नहीं है, तो आप एक अतिरिक्त चाल का प्रयास कर सकते हैं। चूंकि चुनिंदा और टेक्स्टरेरा जैसे फॉर्म विजेट अक्सर ओएस द्वारा प्रस्तुत किए जाते हैं और ब्राउज़र के अंदर नहीं, यह संभव है कि आप उनके साथ बातचीत कर सकें और कुछ संदेश ब्राउज़र के ईवेंट हैंडलर पर नहीं पहुंच सकते हैं। यदि आप चयन बॉक्स खोलने पर कम जेड-इंडेक्स पर स्क्रीन को कवर करने वाले एक पारदर्शी टेक्स्टरेरा को स्थानांतरित करना चाहते थे, तो आप उस करीबी क्लिक को ट्रैक करने के लिए इसका उपयोग कर सकते हैं। यह ऐसी घटनाओं को कैप्चर करने में सक्षम हो सकता है जो ब्राउज़र DOM तत्व याद कर सकते हैं।
अद्यतन: क्रोम चयन पर एक mousedown देखता है जब यह खुलता है और दस्तावेज़ जब पेज एक का चयन खुली के साथ क्लिक किया जाता है पर एक mouseup।
http://jsfiddle.net/FpfnM/51/
फिर से, आप हर एक में सही व्यवहार को संभालने के लिए कुछ ब्राउज़र पता लगाने करने की आवश्यकता होगी: यहाँ एक संस्करण है कि क्रोम के साथ काम करता है। विशेष रूप से क्रोम के साथ एक पकड़ यह है कि जब आप इसे बंद करने के लिए दूसरी बार चयन करते हैं तो कोई ईवेंट निकाल दिया नहीं जाता है। हालांकि, आप पेज क्लिक का पता लगा सकते हैं।
त्वरित सारांश:
Chrome/Safari: select.mousedown on open, document.mouseup on close
Firefox: select.click on open, document.mouseup on close
IE8/IE7: select.click on open, document.mouseup on close
वहाँ अन्य घटनाओं कि एक करीबी (भागने कुंजी दबाने आदि, धुंधला,) दर्शाता होगा के लिए बढ़त के मामलों की एक बहुत भयानक हैं, लेकिन इन न्यूनतम संभालने के लिए कर रहे हैं परिदृश्य जहां कोई उपयोगकर्ता चयन बॉक्स पर क्लिक करता है और फिर दस्तावेज़ क्षेत्र में क्लिक करता है।
आशा है कि इससे मदद मिलती है!
यदि आप के बारे में बताया कि आपको यह करना चाहता था, यह मदद कर सकता है। – Pointy
... क्योंकि आपके प्रश्न का सीधा, सरल जवाब है, "नहीं"। :-) – Pointy
अन्य प्रश्न पर टिप्पणी में कारण क्यों है: http://stackoverflow.com/questions/6097240/javascript-on-ios-opening-an-html-select-element#comment-7069149 लेकिन यह एक गंभीर कारण है। संक्षेप में, मैं केवल चुनिंदा तत्व की स्थिति के बारे में कुछ प्रोग्रामेटिक जानकारी प्राप्त करना चाहता हूं। यदि यह संभव नहीं है, तो मैं वास्तव में उत्सुक हूं कि क्यों नहीं (?) – Premasagar