تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ سیامک احمدی
تغیر استایل با کلیک در نقاط دیگر داکیومنت
جامعه جاوا اسکریپت ایجاد شده در ۰۹ بهمن ۱۴۰۰

سلام

یک ساب منو داریم که اپشن‌های ان با استفاده از کلاس ‌hidden و show مشخص میشه ، این کلاس رو با استفاده از یک فانکشن toggle میکنیم و با onClic روی منو هندل میکنیم ، مشکل اینجاست که زمانی که روی منو کلیک میکنیم و باز میشه تا زمانی که دوباره رو خودش کلیک نکردیم بسته نمیشه .

میخواستم ببینم بدون اینکه روی خودش کلیک کنیم مثلا جای دیگه ای از داکیومنت کلیک کنیم ، یک فضای خالی ای چیزی بسته بشه منو ، چجوری میشه هندل کرد ؟

سلام ، امیدوارم حالتون خوب باشه.

روش اول :

میتونید روی window یک click event ست کنید و submenu رو hide کنید .

سپس باید برای submenu یک click event ست کنید و در آن stopPropagation را اعمال کنید تا کلیک روی window بر submenu اعمال نشود .

مثل کد زیر:

window.addEventListener('click' ,(e)=>{
     // hide menu
})
submenu.addEventListenrt('click' ,(e)=>{
    e.stopPropagation()
    //show menu
})

روش دوم :

میتوانید مثل روش اول روی window یک click event ست کنید و چک کنید اگر برابر با submenu نبود المنت hide بشود

مثل کد زیر:

window.addEventListener('click' ,(e)=>{
    if(e.target != submenu){
        // hide menu
    }
})

موفق باشید .

علیرضا ایمانی ۰۹ بهمن ۱۴۰۰، ۲۲:۵۵