الأزرار تحافظ على فئة التركيز الخاصة بها بعد فقدان التركيز
سؤال
لدي بعض الأزرار في شريط الأدوات السفلي للوحة الشبكة التي تتحكم في إضافة السجلات وإزالتها من شبكة تحرير الصفوف.
المعالجات بسيطة جدًا:يقوم الزر "جديد" بإنشاء مثيل للنموذج، وإلحاقه بالشبكة ثم فتح محرر الصف في الصف الجديد؛الزر "تحرير" يفتح فقط محرر الصف المحدد؛يؤدي "إزالة" إلى تدمير السجل من المتجر وتحديث عرض الشبكة.
لسبب ما، لا تفقد هذه الأزرار فئة التركيز التي تمنحها حدودًا عندما يكون التركيز عليها.هنا صورة:
في الصورة، يحتوي كل من الزر "جديد" والزر "إزالة" على فئة التركيز، وعندما أضغط على الزر "تحرير"، فإنه يحتفظ أيضًا بفئات التركيز حتى بعد إجراء عملية تحرير صف كاملة وإغلاق محرر الصف.
لقد وجدت أنه عندما أقوم بالضغط على أحد هذه الأزرار "المركّزة" بشكل دائم ثم أقوم برفع الماوس بعيدًا عنها ثم انقر فوق شيء آخر تختفي فئة التركيز.
أعلم أنه يمكنني وضع معالج التمويه لجميع مكونات الأزرار في وحدات التحكم الخاصة بي، لكنني كنت أعتقد أن هذه الوظيفة مدمجة لذا أطلب معرفة ما إذا كان هناك شيء فاتني في مكان ما في المستندات.
الفئات التي لن تتخلى عنها هي:
x-focus x-btn-focus x-btn-default-toolbar-small-focus
هذا مع ExtJS 4.1.0 في FF10 على نظام التشغيل Windows 7.لكنني لاحظت سلوكًا مشابهًا في ExtJS 4.02 و4.07، ولم أكن بحاجة للتعامل معه حتى الآن.
المحلول
لقد اكتشفت ما هو:
في مرحلة ما من سلسلة المعالج لكل زر من هذه الأزرار، يتم تعطيل الزر.عندما يتم تعطيل زر في ExtJS فإنه يمنع blur
الحدث من إطلاق النار.
وكان من الضروري تعطيل الأزرار حتى يضيف الحل ببساطة button.blur()
في المعالج كانت الطريقة الصحيحة للقيام بذلك.