البرمجة

تحقيق التبديل الدقيق في jQuery: توسيع وطي العناصر بناءً على الحقل المحدد

في البداية، يجدر بنا أن نلاحظ أن الكود الذي قدمته يستخدم وظيفة التبديل (Toggle) في jQuery لتبديل الحالة بين التوسيع والطي عند النقر على عنصر HTML الذي يحمل الفئة .myElement. ومن الواضح أنك تواجه تحدياً في تحديد المكان الصحيح للنقر حتى يتم السماح بالتبديل.

لحل هذا التحدي، يمكننا استخدام وظيفة event.target في jQuery لتحديد العنصر الذي تم النقر عليه بشكل دقيق. عليه، سنقوم بتعديل الكود بحيث يتم التبديل فقط عند النقر على الحقل الموقع داخل .myElement. سنقوم أيضاً بإجراء بعض التعديلات لتحقيق هذا الهدف.

javascript
$('.myElement').click(function (event) { // التحقق مما إذا كان النقر على الحقل الموقع داخل .myElement if ($(event.target).hasClass('signed')) { // تبديل الحالة للعنصر الحالي $(this).toggleClass('active'); // التبديل على عنصر الابن الذي يحمل العنصر div داخل .myElement $(this).children('div').toggle(800); } });

بهذا التعديل، يتم فقط تنشيط وظيفة التبديل عندما يتم النقر على الحقل الموقع داخل .myElement الذي يحمل الفئة .signed. هذا يتيح لك تحقيق السلوك المطلوب، حيث يمكن للعنصر التبديل فقط عند النقر على الحقل المحدد كما هو موضح في الصورة التي قدمتها (http://i.imgur.com/zSvGKZB.jpg).

المزيد من المعلومات

لتفهم بشكل أعمق كيف يتم تحقيق هذا السلوك، دعوني أوضح لك ببساطة الكود المقدم وكيف يعمل:

في السطور الأولى من الكود، نستخدم $('.myElement').click(function (event) {...} لتعريف وظيفة تفعيل عند حدوث حدث النقر (click) على عنصر HTML الذي يحمل الفئة .myElement. داخل هذه الوظيفة، نستخدم event كمعلمة للوصول إلى معلومات حول الحدث الذي حدث، بما في ذلك العنصر الذي تم النقر عليه.

باستخدام if ($(event.target).hasClass('signed')) {...}, نتحقق مما إذا كان العنصر الذي تم النقر عليه يحمل الفئة .signed أم لا. إذا كان الشرط صحيحًا، يتم تنفيذ الأوامر داخل السوية، والتي تشمل $(this).toggleClass('active'); لتبديل الفئة ‘active’ على العنصر الحالي، و $(this).children('div').toggle(800); لتبديل الحالة للعنصر div داخل .myElement.

هذا يضمن أن يتم تنشيط وظيفة التبديل فقط عند النقر على الحقل الموقع داخل .myElement الذي يحمل الفئة .signed. بفضل هذا التحكم الدقيق في تحديد العناصر المستهدفة، يمكنك الآن تحقيق سلوك محدد وتحديد الحقل الذي يتم فيه التبديل وفقاً للمتطلبات التي قدمتها.

زر الذهاب إلى الأعلى