محمود سعداوي2 نشر 14 ديسمبر 2022 أرسل تقرير نشر 14 ديسمبر 2022 السلام عليكم. في الصورة التالة لدي منتج به زر إعجاب يتغير لونه عند النقر عليه مثلما تلاحظون في أعلى الصورة يوجد عنصر My Favorites هذا العنصر يحدد عدد الإعجابات الجملية أو بالأحرى يحسب عدد الأزرار التي باللون الأحمر. مثال: في الصورة الثانية عدد الإعجابات 01 بينما إذا أعدت النقر على الزر باللون الأحمر يتحول لونه إلى اللون الأولي و بالتالي يصبح عدد الإعجابات 00. الكود الذي قمت به: const handleLike = (el) =>{ el.target.classList.toggle('toggle-like-btn-icon') if(el.target.style.color === "#F05454"){ setNumLikes(numLikes + 1) console.log('true'); }else{ setNumLikes(numLikes - 1) } } المشكل أنه مهما كان النقر دائما My Favorites تزيد بعدد 01 شكرا على المساعدة. 1 اقتباس
0 عمر قره محمد نشر 14 ديسمبر 2022 أرسل تقرير نشر 14 ديسمبر 2022 بتاريخ 40 دقائق مضت قال محمود سعداوي: تفضل src (2).zip يبدو ان المشكلة في الشرط الخاص بك، حيث ان الـ color هنا معطى للكلاس وليس للعنصر نفسه وبالتالي فالشرط التالي : el.target.style.color !== "#F05454" لن يكون صحيحاً في اي وقت من الاوقات. والمشكلة الثانية هي انك تقوم بعمل الـ toggle قبل الشرط وبالتالي فإن العنصر إذا لم يكن مفعل سيفعل ثم سيتم والحل هو ان تغير الوظيفة إلى الشكل التالي : const handleLike = (el) => { if (el.target.className.includes("toggle-like-btn-icon")) { setNumLikes(numLikes - 1) el.target.classList.toggle('toggle-like-btn-icon') } else { setNumLikes(numLikes + 1) el.target.classList.toggle('toggle-like-btn-icon') } } بحيث يكون الشرط هو احتواء الـ className على الـ class المسمى toggle-like-btn-icon. 1 اقتباس
0 عمر قره محمد نشر 14 ديسمبر 2022 أرسل تقرير نشر 14 ديسمبر 2022 هي مكنك مشاركة ملف الـ src حتى استطيع الاطلاع على المشكلة بشكل افضل. 1 اقتباس
0 محمود سعداوي2 نشر 14 ديسمبر 2022 الكاتب أرسل تقرير نشر 14 ديسمبر 2022 بتاريخ 9 دقائق مضت قال عمر قره محمد: هي مكنك مشاركة ملف الـ src حتى استطيع الاطلاع على المشكلة بشكل افضل. تفضل src (2).zip 1 اقتباس
السؤال
محمود سعداوي2
السلام عليكم.
في الصورة التالة لدي منتج به زر إعجاب يتغير لونه عند النقر عليه
مثلما تلاحظون في أعلى الصورة يوجد عنصر My Favorites
هذا العنصر يحدد عدد الإعجابات الجملية أو بالأحرى يحسب عدد الأزرار التي باللون الأحمر.
مثال: في الصورة الثانية عدد الإعجابات 01 بينما إذا أعدت النقر على الزر باللون الأحمر يتحول لونه إلى اللون الأولي و بالتالي يصبح عدد الإعجابات 00.
الكود الذي قمت به:
const handleLike = (el) =>{ el.target.classList.toggle('toggle-like-btn-icon') if(el.target.style.color === "#F05454"){ setNumLikes(numLikes + 1) console.log('true'); }else{ setNumLikes(numLikes - 1) } }
المشكل أنه مهما كان النقر دائما My Favorites تزيد بعدد 01
شكرا على المساعدة.
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.