راکت
مهدی
مهدی
2 سال پیش توسط مهدی مطرح شد
حل
8 پاسخ

مشکل جاوا اسکریپتی

@Raymond @saghari @salar.mohammad2013 @error.404 @ossvahid
سلام
مشکل کجاست؟ 😕

const toggleThemeBtns = document.querySelectorAll(".toggle-theme");

toggleThemeBtns.forEach( btn => {
    btn.addeEventListener("click", function(){
        if (localStorage.theme === "dark"){
            document.documentElement.classList.remove("dark");
            localStorage.theme = "light";
        } else {
            document.documentElement.classList.add("dark");
            localStorage.setItem("theme", "dark");
        }
    })
});

ثبت پرسش جدید
محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
1

داداش دقت کن دیگه مشکل رو داره میگه
شما زدی addeEventListener ولی درستش اینه addEventListener یه e بعد add اضافه زدی

@ossvahid درسته این که زده هم با getItem میشه هم اینطوری


آرتین کریمی
آرتین کریمی
تخصص :طراح وب و برنامه نویس
@error.4042 سال پیشمطرح شد
1

اروری که بر می خورین رو بدین؟ کد html js


آرتین کریمی
آرتین کریمی
تخصص :طراح وب و برنامه نویس
@error.4042 سال پیشمطرح شد
محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
1

اولا همیشه ارور رو هم بگو
دوما احتمالا مشکل از خط سه هست که این toggleThemeBtns که روش حلقه زدی آرایه نیست باید اول تبدیلش کنی به این دو صورت بعد روش حلقه بزنی

Array.from(toggleThemeBtns)
[...toggleThemeBtns]

مهدی
مهدی
تخصص :توسعه دهنده فرانت اند
@mehdi8686h2 سال پیشمطرح شد
vahid
vahid
تخصص :توسعه دهنده وردپرس
@vahid13792 سال پیشمطرح شد
0
localStorage.theme

اشتباهه


محمد حسین
محمد حسین
تخصص :mevn stack
@saghari2 سال پیشمطرح شد
1

داداش دقت کن دیگه مشکل رو داره میگه
شما زدی addeEventListener ولی درستش اینه addEventListener یه e بعد add اضافه زدی

@ossvahid درسته این که زده هم با getItem میشه هم اینطوری


رایموند
رایموند
تخصص :مختصص وردپرس - برنامه نویس لاراول
@Raymond2 سال پیشمطرح شد
1

درود خوبی...
کد زیر:

HTML:

<button id="themeSelector"></button>

CSS:

.dark {
    background-color: #1a1d24; 
    color: #efefef;
}

JavaScript:

window.addEventListener('load', () => {
    if (!localStorage.getItem('theme')) {
        localStorage.setItem('theme', 'light');
    }

    const themeSelector = document.querySelector('#themeSelector');
    if (localStorage.getItem('theme') === 'dark') {
        document.body.classList.add('dark');
        themeSelector.textContent = '☀️';
    } else {
        themeSelector.textContent = '🌙️';
    }

    themeSelector.addEventListener('click', () => {
        if (localStorage.getItem('theme') === 'light') {
            localStorage.setItem('theme', 'dark');
            themeSelector.textContent = '☀️';
        } else {
            localStorage.setItem('theme', 'light');
            themeSelector.textContent = '🌙️';
        }

        document.body.classList.toggle('dark');
    });
});

مهدی
مهدی
تخصص :توسعه دهنده فرانت اند
@mehdi8686h2 سال پیشمطرح شد
0

@saghari
عه اره... 😅😅
ممنون 🌹

@Raymond @ossvahid
مرسی از پاسختون❤️


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام