سؤال

انا املك modal dialog نموذج يحتوي على بعض "روابط المساعدة" بداخله والتي يجب أن تفتح لوحات أو مربعات حوار أخرى غير مشروطة فوقه (مع الاحتفاظ بمربع الحوار الرئيسي بخلاف ذلك).

ومع ذلك، دائمًا ما ينتهي بهم الأمر خلف القناع. YUI يبدو أن الاعتراف بالأعلى z-index هناك وتعيين القناع ومربع الحوار المشروط ليكون أعلى من ذلك.

إذا انتظرت تعديل حجم محتوى المساعدة، فيمكنني تعيينها بحيث تحتوي على مؤشر z أعلى.حتى الان جيدة جدا.تكمن المشكلة إذن في أن الحقول الموجودة في مربعات الحوار الثانوية غير المشروطة غير قابلة للتركيز.يبدو أن مربع الحوار المشروط الموجود أسفلهم يمنع التركيز بطريقة ما من الانتقال إلى أي شيء غير موجود في مربع الحوار المشروط الأولي.

سيكون من المقبول أيضًا أن أتمكن من القيام "بطريقة مجموعة الحوار" هذه باستخدام jQuery، إذا لم تسمح YUI بذلك.

يساعد!

هل كانت مفيدة؟

المحلول

افتراضيًا، تدير YUI الفهرس z لأي شيء يمتد إلى YAHOO.widget.Overlay ويستخدم لوحة تراكب.ويتم ذلك من خلال طريقة "bringToTop" الخاصة بـ YAHOO.widget.Overlay.يمكنك إيقاف هذا ببساطة عن طريق تغيير طريقة "bringToTop" لتصبح وظيفة فارغة:

YAHOO.widget.Overlay.prototype.bringToTop = function() { };

سيؤدي هذا الرمز إلى إيقاف تشغيله للأبد ويمكنك فقط وضعه في أسفل ملف Container.js.أجد أن هذا النهج يشبه كثيرًا أسلوب المطرقة الثقيلة، لذلك قمنا بتوسيع فئات YUI وبعد استدعاء "super.constuctor" اكتب:

this.bringToTop = function() { };

إذا قمت بذلك، فأنت تخبر YUI بشكل أساسي أنك ستدير مؤشرات z لعناصرك بنفسك.ربما يكون هذا أمرًا جيدًا، ولكن هناك شيء يجب مراعاته قبل القيام بذلك.

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top