من فکر میکنم قدم به قدم با استاد پیش رفتم ولی کار نمیکنه. قبل از رسیدن به این مرحله مشکلی نداشتم و کلید تم مشکی کار میکرد ولی توی مرحله ذخیره سازی انتخاب کاربر که رسیدم دیگه خوب پیش نرفتم.
فایلها ارسال شدند.
سلام دوست عزیز بررسی میشه.
لطفا تاپیکهای قبلی که ایجاد کردید اگه مشکل رفع شده تایید بزنید تا تاپیک بسته بشه.
احمد اسماعیلی۰۲ آذر ۱۴۰۱، ۱۴:۳۱
کد شما بررسی شد : این کد jquery شماست:
jQuery("#themechanger").change(function () {
let data = {
night: "night",
};
localStorage.setItem("theme_mode", JSON.stringify(data));
let return_data = localStorage.getItem("theme_mode");
//console.log(JSON.parse(return_data));if (this.checked) {
$(".sitebody").addClass(JSON.parse(return_data)); /// Error 1
} else {
localStorage.clear("theme_mode");
$(".sitebody").removeClass(JSON.parse(return_data)); /// Error 2
}
if (localStorage.getItem("theme_mode")) {
let return_data = localStorage.getItem("theme_mode");
$(".sitebody").addClass(JSON.parse(return_data)); /// Error 3
}
});
شما در سه خط بالا که با کامنت Error مشخص کردم اشتباه دارید. متغییر return_data رو که یک فایل json هست از حالت json خارح کردید ولی اشاره نکردید که چه مقداری رو میخواید به عنوان کلاس به تگی که سلکتور sitebody داره اضافه کته. شما قراره کلاسی به اسم night رو اضافه کنید. پس باید به اون بعد از JSON.parse(return_data) اشاره کنید.
در زیر اصلاح شده آن وجود دارد. کدها رو با دقت بخونید و اگه متوجه نشدید توصیه میکنم ویدئوی این سرفصل رو با دقت کامل و چندین بار ببینید تا براتون جا بیفته.
و همچنین جهت بهبود فرآیند پشتیبانی تاپیکهای قبلی و همچنین اگه این تاپیک مشکلتون حل شد، تاپیک رو به حالت تایید در بیارید که بسته بشه .
jQuery("#themechanger").change(function () {
let data = {
night: "night",
};
localStorage.setItem("theme_mode", JSON.stringify(data));
let return_data = localStorage.getItem("theme_mode");
//console.log(JSON.parse(return_data));if (this.checked) {
$(".sitebody").addClass(JSON.parse(return_data).night); /// True
} else {
localStorage.clear("theme_mode");
$(".sitebody").removeClass(JSON.parse(return_data).night); /// True
}
if (localStorage.getItem("theme_mode")) {
let return_data = localStorage.getItem("theme_mode");
$(".sitebody").addClass(JSON.parse(return_data).night); /// True
}
});
احمد اسماعیلی۰۲ آذر ۱۴۰۱، ۲۱:۱۸
و یک توصیه اینکه به هیچ وجه در طول یادگیری عجله نکنید ، تمرین کنید و کدها رو با دقت بخونید و بررسی کنید. همچنین داکیومنتهای خود اون زبان یا هر چیزی که دارید آموزش میبینید رو نگاه کنید. اگه مشکلی براتون پیش میاد سرچ کنید. این کار به رشد و یادگیری سریعتر شما کمک میکنه.
موفق باشید.
احمد اسماعیلی۰۲ آذر ۱۴۰۱، ۲۱:۲۱
//theme changer//jQuery("#themechanger").change(function () {
//step 1 : to transfer the css class into a js objectlet data = {
night: "night_mode_class",
checked:"checked"
};
//step 2 : trasfer the js objects into a string and stores it in localstoragelocalStorage.setItem("theme_mode", JSON.stringify(data));
//step 3 : returns the data stored in local storagelet return_data = localStorage.getItem("theme_mode");
// step 4 : condition to add or remove the night calss and apply the checked attribute to the checkboxif (this.checked) {
$(".sitebody").addClass(JSON.parse(return_data).night); /// TruejQuery(this).attr("checked",JSON.parse(return_data).checked);
} else {
localStorage.clear("theme_mode");
$(".sitebody").removeClass(JSON.parse(return_data).night); /// TruejQuery(this).removeattr("checked");
}
});
//step 5 : for keeping the checkbox chekced when refresshing the pageif(localStorage.getItem("theme_mode")){
let return_data = localStorage.getItem("theme_mode");
$(".sitebody").addClass(JSON.parse(return_data).night); /// TruejQuery("#themechanger").attr("checked",JSON.parse(return_data).checked);
}
});
میثم جوهری۰۵ آذر ۱۴۰۱، ۱۷:۴۶
ممنون من موفق شدم اجرا کنم این حالت گرفتن دیتا از لوکال استورج را، فقط میخواستم ببینم درست درک کردم مسئله را ؟ طبق استپ هایی که یعنی نوشتم.
,و اینکه ما یکباره توی این جلسه:
آبجکت جاوا اسکریپت
استرینگ کردن آبجکت با JSON
تبدیل لوکال استورج به یه متغیر که من اینجا یه سوالی برام پیش اومده، که ما میتونستیم بدون متغیر جلو بریم ؟
بعد پارس کردن یعنی چی ؟ یعنی اون متغیر را حالا با کلید نایت یا یه چیز دیگه را تبدیل به چیش میکنه ؟ به کلاس ؟
ممنون میشم یه ویدئو درست کنید اینا را توضیح بدید.
میثم جوهری۰۵ آذر ۱۴۰۱، ۱۷:۴۷
لطفا کل پروژه رو آپلود کنید
احمد اسماعیلی۰۵ آذر ۱۴۰۱، ۱۸:۰۷
ممنون من موفق شدم اجرا کنم این حالت گرفتن دیتا از لوکال استورج را، فقط میخواستم ببینم درست درک کردم مسئله را ؟ طبق استپ هایی که یعنی نوشتم.
,و اینکه ما یکباره توی این جلسه:
آبجکت جاوا اسکریپت
استرینگ کردن آبجکت با JSON
تبدیل لوکال استورج به یه متغیر که من اینجا یه سوالی برام پیش اومده، که ما میتونستیم بدون متغیر جلو بریم ؟
بعد پارس کردن یعنی چی ؟ یعنی اون متغیر را حالا با کلید نایت یا یه چیز دیگه را تبدیل به چیش میکنه ؟ به کلاس ؟