انتقل إلى محتوى الدرس
الدرس 51
تاريخ النشر: تاريخ التحديث:
دورة جافا سكريبت

مدخل تفاعل الدوال مع أحداث HTMLJavaScript HTML Events Basics طريقة ربط الدوال بأفعال المستخدم، واستدعاء الدالة بسمة onclick، وتفاعل مرور ومغادرة المؤشر

اربط دوال JavaScript بتفاعلات المستخدم الحية عبر onclick وأحداث مرور الفأرة والكتابة الفورية oninput وجاهزية الصفحة onload تمهيداً لاحتراف شجرة DOM.
أقسام الدرس
6
الأمثلة
2
اللغة
العربية
المشاهدات
5,684
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

عملت جميع الدوال التي كتبناها في دروس هذا الفصل فور تحميل السكربت، غير أن صفحات الويب الحقيقية تنبض بالحياة عند ربط الدوال بأحداث التفاعل (HTML Events)؛ وهي الإشارات التي يطلقها المتصفح كلما نقر الزائر زراً أو مرر المؤشر أو كتب في حقل إدخال.

مخطط تدفق الأحداث من تفاعل المستخدم وإشارة المتصفح إلى تشغيل الدالة وتحديث الواجهة فورياً

تُعد سمة onclick="myFunc()" على عنصر الزر — أو إسناد مرجع الدالة برمجياً عبر btn.onclick = myFunc — أسرع مدخل عملي لرؤية دوالك تتفاعل مباشرةً مع المستخدم:

سمة الحدثلحظة إطلاق الإشارة في المتصفحالمهمة الشائعة للدالة المرتبطة
onclickنقر العنصر بالفأرة أو تفعيله بلوحة المفاتيححساب الفاتورة أو تبديل حالة عنصر
onmouseover / onmouseoutدخول مؤشر الفأرة لحدود العنصر أو مغادرتهاعرض تلميح توضيحي سريع أو إخفاؤه
oninput / onchangeالكتابة الفورية بالحقل أو اعتماد تغيير قيمتهحساب عدد الأحرف المتبقية أو تحديث السعر
onloadاكتمال تحميل الصفحة ومواردها المرتبطةتهيئة القيم الافتراضية للوحة التحكم
JavaScript
function applyCoupon() {
  const finalPrice = 200 * 0.85;
  document.getElementById('ev-price').textContent = 'Discounted: ' + finalPrice + ' SAR';
}

يتيح الجمع بين onmouseover وonmouseout تشغيل دالة تعرض وصفاً إرشادياً فور مرور المؤشر فوق العنصر، وإعادة النص الأصلي عند مغادرته.

تطلق حقول النماذج حدثين متكاملين: oninput الذي يعمل لحظياً مع كل حرف يكتبه المستخدم أو يلصقه، وonchange الذي ينتظر انتهاء التعديل ومغادرة الحقل النصي (أو اختيار عنصر من قائمة منسدلة).

JavaScript
function updateCounter() {
  const box = document.getElementById('bio-in');
  const len = box.value.length;
  document.getElementById('char-out').textContent = 'Characters: ' + len + ' / 50';
}

يطلق المتصفح حدث onload عند اكتمال تحميل المستند وكافة صوره وملفاته الفرعية. وتذكر أن وضع وسم السكربت قبل نهاية </body> أو استخدام سمة defer يضمن جاهزية العناصر مسبقاً لتشغيل دوال التهيئة بسرعة.

رغم بساطة سمات HTML المضمنة مثل onclick="..." في الأمثلة التمهيدية، تفصل المشاريع الاحترافية هيكل HTML عن سلوك JavaScript تماماً؛ لأن السمات المضمنة تتطلب دوال في النطاق العام وتخالف سياسات الأمان الصارمة (CSP). وفي الفصل التاسع القادم ستتقن التعامل الشامل مع شجرة DOM تمهيداً لاحتراف المستمع القياسي الحديث addEventListener في الفصل العاشر!

خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

ربطت في ختام فصل الدوال دوالك البرمجية بأحداث التفاعل الحية عبر onclick وأحداث المؤشر والكتابة الفورية oninput وجاهزية الصفحة onload، وأدركت مزايا فصل معالجات الأحداث عن وسوم HTML. الخطوة التالية: ابدأ الفصل التاسع بدرس «نموذج كائن المستند DOM في JavaScript» لاكتشاف كيف يبني المتصفح شجرة العناصر الحية بالذاكرة.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات3

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 3 مفهومةأول بطاقة، أول خطوة
01 HTML Event حدث المتصفح التفاعلي
إشارة يطلقها المتصفح عند وقوع فعل من المستخدم كالنقر والكتابة أو اكتمال تحميل الصفحة لتشغيل دالة معالجة.
للمراجعة
02 Event Handler دالة معالجة الحدث
دالة JavaScript مخصصة للتشغيل التلقائي استجابةً لوقوع حدث معين على عنصر محدد في الصفحة.
للمراجعة
03 oninput Event حدث الإدخال الفوري oninput
حدث ينطلق لحظياً مع كل تغيير مباشر في قيمة حقل الإدخال سواء بالكتابة أو الحذف أو اللصق.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 DOM DOM
Document Object Model
شجرة كائنات المستند الحية التي تتيح ربط الأحداث وتحديث العناصر برمجياً.
للمراجعة
02 CSP CSP
Content Security Policy
سياسة الأمان القياسية التي تشجع فصل دوال الأحداث في ملفات JavaScript بدلاً من كتابتها داخل وسوم HTML.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح مثال updateCounter في محرر التجربة واكتب عدة كلمات داخل الحقل لمشاهدة تحديث العداد مع كل حرف.

  2. قارن بين التبويبين الأول والثالث في محاكي الأحداث لملاحظة سبب إسناد مرجع الدالة بدون أقواس.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

10أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي10 أسئلة تنتظرك
01

ما الحدث الذي ينطلق عندما ينقر الزائر على عنصر <button> أو يفعّله بلوحة المفاتيح؟

02

ما الخطأ البرمجي في كتابة السطر "btn.onclick = saveForm();" بقوسين في ملف JavaScript؟

03

أي حدث في حقول النصوص ينطلق لحظياً مع كل ضغطة حرف وكذلك عند لصق نص بالفأرة؟

04

في حقل الإدخال النصي، ينتظر الحدث onchange عادةً انتهاء المستخدم من الكتابة وانتقال التركيز خارج الحقل.

05

أي زوج من الأحداث يرصد دخول مؤشر الفأرة إلى منطقة العنصر ثم مغادرته لها؟

06

استخدام عنصر الزر القياسي <button type="button"> بدلاً من <div> يحافظ على إمكانية الوصول عبر لوحة المفاتيح.

07

لماذا تتجنب المشاريع الاحترافية الإكثار من سمات onclick="..." المضمنة داخل وسوم HTML؟

08

عند عرض النص الذي يكتبه المستخدم أثناء حدث oninput يجب استخدام textContent بدلاً من innerHTML لمنع حقن الأكواد.

09

متى ينطلق حدث window.onload خلال دورة تحميل صفحة الويب؟

10

في الصفحات التفاعلية يمكن لنفس الدالة العمل مع كل نقرة زر دون الحاجة لإعادة تحميل الصفحة.