Anonim

यदि आप जावास्क्रिप्ट में प्रोग्राम करते हैं, तो आप संभवत: उस स्थिति में भाग लेंगे, जहाँ आप मेनू पर क्लिक करने पर खुलने वाले मेनू को रखना चाहते हैं, और जब उपयोगकर्ता मेनू के बाहर क्लिक करता है। मैंने एक बहुत ही सरल तरीका विकसित किया है। मैं दस्तावेज़ के निकाय में एक ईवेंट श्रोता जोड़ता हूं। जब कोई इसे क्लिक करता है, तो हम ईवेंट के लक्ष्य आईडी की तलाश करते हैं। यदि यह बॉक्स के div की आईडी से मेल खाता है, तो कुछ भी न करें। यदि ऐसा नहीं होता है, तो मेनू को बंद करें।

इसे थोड़ा आगे बढ़ाते हुए, जब इसका उपयोग नहीं किया जा रहा हो तो पूरे शरीर पर एक क्लिक ईवेंट श्रोता को छोड़ना अक्षम है। इस मामले में, यदि मेनू अभी तक नहीं खोला गया है, तो मेनू के बाहर एक क्लिक के लिए सुनने का कोई कारण नहीं है। दिखाए जा रहे div के कॉलबैक में इवेंट श्रोता को जोड़ें। उसी नस में, जब तलाक को फिर से छिपाया जा रहा है, तो घटना श्रोता को हटा दें।

शो डिव ब्लैक बॉक्स के अंदर क्लिक करें, कुछ भी नहीं होता है। बाहर क्लिक करें, यह $ ('# शोबॉक्स') गायब हो जाता है। ;}); function boxCloser (e) {if (e.target.id! = 'bigbox') {document.body.removeEventListener ('क्लिक करें', boxCloser, false); $ ( '# Bigbox') को छिपाने ()।; }}

यह भी सुनिश्चित करें कि आप अपनी परियोजना में jQuery को शामिल करें क्योंकि उपरोक्त कुछ कार्यक्षमता उस लाइब्रेरी का उपयोग करती है।

क्लोज़ डिव या मेन्यू क्लिक आउट डब्ल्यू / जावास्क्रिप्ट के बाहर