Avatar ·

كيفية تتبع النقر خارج العنصر باستخدام JavaScript؟

مرحباً بالجميع! أنا مبتدئ في JavaScript وأكتب قائمة منسدلة. أحتاج إلى إغلاقها عندما ينقر المستخدم في أي مكان خارج القائمة نفسها. جربت العديد من الخيارات، لكن لا شيء يعمل بشكل صحيح. إليك الكود الحالي الخاص بي: ```javascript const menu = document.getElementById('myMenu'); document.addEventListener('click', function(event) { if (event.target !== menu) { menu.style.display = 'none'; } }); ``` المشكلة هي أن القائمة تُغلق حتى عندما أنقر على محتواها (مثل عناصر القائمة أو الأزرار داخلها). أفهم أن event.target هو العنصر المحدد الذي تم النقر عليه، وليس حاوية القائمة نفسها. كيف يمكنني التحقق بشكل صحيح من أن النقر كان خارج العنصر، بما في ذلك جميع العقد الفرعية الخاصة به؟ أحتاج حلاً خالصاً بلغة JavaScript، بدون jQuery. شكراً! <<>>

استخدام طريقة contains()

حدسك صحيح: event.target !== menu يتحقق فقط من عنصر القائمة نفسه، وليس من