اذهب إلى المحتوى

السؤال

نشر (معدل)

السلام عليكم.

أرجو المساعدة في الخطأ التالي

Uncaught TypeError: Cannot read properties of undefined (reading 'target')

علما و أن الشيفرة هي التالية:

const btns = document.querySelectorAll("button")

btns.forEach(btn =>{
    btn.addEventListener('click',btnAction)
})

function btnAction(e) {
    let description = e.target.getAttribute("data-cookie")
    console.log(description);
}

btnAction()

شكرا.

تم التعديل في بواسطة سامح أشرف
تنسيق وتوضيح السؤال

Recommended Posts

  • 0
نشر

الخطأ بسبب إستدعاء الدالة btnAction في نهاية الكود، حيث لم تقم بتمرير أي حدث إليها وبالتالي فإن المعامل e غير معرف undefined، وبالتالي يحدث خطأ عند محاولة الوصول إلى الخاصية target ضمن المعامل e

كل ما عليك لحل المشكلة أن تقوم بحذف آخر إستدعاء للدالة btnAction من الكود:

const btns = document.querySelectorAll("button")

btns.forEach(btn =>{
    btn.addEventListener('click', btnAction)
})

function btnAction(e) {
    let description = e.target.getAttribute("data-cookie")
    console.log(description);
}

// هذا السطر هو سبب المشكلة
// btnAction()

 

  • 0
نشر
بتاريخ 1 دقيقة مضت قال سامح أشرف:

الخطأ بسبب إستدعاء الدالة btnAction في نهاية الكود، حيث لم تقم بتمرير أي حدث إليها وبالتالي فإن المعامل e غير معرف undefined، وبالتالي يحدث خطأ عند محاولة الوصول إلى الخاصية target ضمن المعامل e

كل ما عليك لحل المشكلة أن تقوم بحذف آخر إستدعاء للدالة btnAction من الكود:


const btns = document.querySelectorAll("button")

btns.forEach(btn =>{
    btn.addEventListener('click', btnAction)
})

function btnAction(e) {
    let description = e.target.getAttribute("data-cookie")
    console.log(description);
}

// هذا السطر هو سبب المشكلة
// btnAction()

 

شكرا

ولكن في هذه الحالة console لايظهر شيء

يعني console.log(description) لم تعد تعمل

  • 0
نشر
بتاريخ 1 دقيقة مضت قال محمود سعداوي:

شكرا

ولكن في هذه الحالة console لايظهر شيء

يعني console.log(description) لم تعد تعمل

لكي يتم طباعة أي قيمة في console فإنك بحاجة إلى الضغط على أي زر في الصفحة، وذلك لأنك حددت مسبقًا كل الأزرار buttons وأضفت حدث event لتنفيذ الدالة btnAction عند الضغط على أي زر، أيضًا يجب أن يحتوي الزر الذي تضغط عليه الخاصية data-cookie لكي يتم طباعة قيمتها.

إن أستمرت المشكلة لديك، فأرجو منك أن ترفق كود HTML كذلك.

  • 0
نشر
بتاريخ 1 دقيقة مضت قال سامح أشرف:

لكي يتم طباعة أي قيمة في console فإنك بحاجة إلى الضغط على أي زر في الصفحة، وذلك لأنك حددت مسبقًا كل الأزرار buttons وأضفت حدث event لتنفيذ الدالة btnAction عند الضغط على أي زر، أيضًا يجب أن يحتوي الزر الذي تضغط عليه الخاصية data-cookie لكي يتم طباعة قيمتها.

إن أستمرت المشكلة لديك، فأرجو منك أن ترفق كود HTML كذلك.

نعم نعم

أحيانا عندما يطول الكود يكثكر الإرتباك

شكرا جزيلا

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...