"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية ربط أحداث "onclick" بعناصر HTML المضافة ديناميكيًا باستخدام jQuery؟

كيفية ربط أحداث "onclick" بعناصر HTML المضافة ديناميكيًا باستخدام jQuery؟

تم النشر بتاريخ 2024-11-09
تصفح:346

How to Bind 'onclick' Events to Dynamically Added HTML Elements with jQuery?

ربط الأحداث الديناميكية باستخدام jQuery: معالجة مشكلة "onclick"

في مجال تطوير الواجهة الأمامية، من الشائع الإضافة ديناميكيًا عناصر HTML إلى الصفحة. ومع ذلك، فإن ربط الأحداث بهذه العناصر المضافة حديثًا يمكن أن يكون أمرًا صعبًا، حيث قد لا تعمل طرق ربط الأحداث التقليدية كما هو متوقع.

المشكلة: الأحداث المباشرة مقابل الأحداث المفوضة

عند التعامل مع العناصر المضافة ديناميكيًا، كان ربط الحدث المباشر (طرق مثل bind() وlive() وdeleg()) هو الحل التقليدي. ومع ذلك، تم إهمال هذه الأساليب في jQuery بسبب مخاوف تتعلق بالأداء.

بدلاً من ذلك، يجب استخدام ربط الحدث المفوض، حيث ترتبط الأحداث بعنصر ثابت (غالبًا كائن المستند) ويتم استدعاء المعالجات بناءً على المحددات المحددة.

الحل: استخدام طريقة on()

لربط حدث onclick بالعناصر المضافة ديناميكيًا باستخدام ربط الحدث المفوض، يجب استخدام طريقة jQuery on(). تأخذ هذه الطريقة ثلاث معلمات:

    نوع الحدث (على سبيل المثال، "انقر")
  1. محدد يستهدف العناصر لإرفاق الحدث إلى
  2. الحدث وظيفة المعالج

مثال: $(document).on('click', '.عنصري الديناميكي'، وظيفة () { // الكود الذي سيتم تنفيذه عند النقر على العنصر });

$(document).on('click', '.my-dynamic-element', function() {
  // Code to execute when the element is clicked
});
ربط العناصر المتعددة المضافة ديناميكيًا

]عند إضافة عناصر متعددة ديناميكيًا، يوصى باستخدام فئة أو سمة مشتركة كمحدد في on( ) طريقة. وهذا يضمن أن جميع العناصر ذات المحدد المحدد يتم التعامل معها بشكل متسق.

الطرق المهملة

تم إهمال الطرق التالية ويجب عدم استخدامها بعد الآن للحدث الربط:

bind()

    live()
  • delegate()
  • باستخدام طريقة on () كما هو موضح أعلاه يضمن التوافق مع الإصدارات الحديثة من jQuery ويوفر معالجة فعالة للأحداث للعناصر المضافة ديناميكيًا.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3