"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية منع القوائم المنسدلة لـ Twitter Bootstrap من الإغلاق عند النقرات الداخلية؟

كيفية منع القوائم المنسدلة لـ Twitter Bootstrap من الإغلاق عند النقرات الداخلية؟

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

How to Prevent Twitter Bootstrap Dropdown Menus from Closing on Internal Clicks?

منع إغلاق القائمة المنسدلة عند النقرات الداخلية

لمنع إغلاق القوائم المنسدلة لـ Twitter Bootstrap عند النقر فوق عنصر داخلي، وهو حل يتحايل مطلوب معالجة حدث النقر المفوض. فيما يلي شرح تفصيلي وحل مقترح:

افتراضيًا، يتم إغلاق القوائم المنسدلة لـ Twitter Bootstrap عند أي نقرة، حتى داخل القائمة نفسها. للتغلب على هذا السلوك، يتضمن أحد الأساليب الشائعة إرفاق معالج حدث النقر بالقائمة المنسدلة واستدعاء events.stopPropagation() لمنع انتشار الحدث.

ومع ذلك، بالنسبة للإعدادات التي تستخدم مكونات مثل عناصر التحكم في الرف الدائري، فإن الحدث المفوض يمكن أن تتداخل آلية التعامل مع Twitter Bootstrap مع السلوك المقصود. في مثل هذه الحالات، قد لا يؤدي النقر فوق عناصر التحكم هذه إلى تشغيل الإجراء المتوقع نظرًا لعدم وصول الحدث إلى معالجات الأحداث المفوضة.

الاعتماد على الأحداث المخفية/الإخفاء في القائمة المنسدلة ليس بديلاً قابلاً للتطبيق لأن هذه الأحداث تفتقر إلى المعلومات الأساسية و التحكم في محتوى القائمة المنسدلة.

الحل المقترح

الحل الفعال هو استخدام تفويض الحدث على عنصر الحاوية الذي يضم القائمة المنسدلة. إليك مثال:

$(document).on('click', 'someyourContainer .dropdown-menu', function (e) {
  e.stopPropagation();
});
في هذا المثال، سيؤدي النقر على العناصر الموجودة داخل الحاوية المحددة إلى نشر الحدث إلى المعالجات المفوضة الخاصة به. ومع ذلك، سيتم اعتراض النقرات على القائمة المنسدلة تحديدًا وسيمنع الحدث.stopPropagation() سلوك إغلاق القائمة المنسدلة.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3