2014-01-22 3 views
0

Я пытаюсь иметь несколько диалогов на своей странице, используя dijit/Dialog. Я хочу, чтобы диалоги были немодальными, поэтому я использовал this question в качестве руководства, чтобы избавиться от подложки фона.Dojo несколько немодальных диалогов с dropdownbutton

Однако, когда я использую DropDownButton для переключения окон, я получаю странное поведение. Когда отображается один диалог, все работает нормально. Когда оба диалога показывают, выпадающие кнопки будут мерцать, показывая/скрываясь при нажатии, а не просто скрываются

Here is the JSFiddle. Для того, чтобы воспроизвести ...

  1. Показать как диалоговые окна под "I"
  2. Нажмите на "I" снова

"I" теперь мерцанием. Иногда, если вы нажмете «B» с обоими диалогими, показывая, что он исправит себя. Если оба диалоговых окна закрыты, проблема будет исправлена.

Я полагал, что это как-то связано с z-индексом диалогов, но DropDownButton, как представляется, всегда имеет более высокий индекс z, чем подкладка и само диалоговое окно.

Другой вариант делает мой собственный FloatingPane, но я хотел бы посмотреть, может ли это работать.

+0

Должна быть проблема с браузером, отлично работает для меня на хроме. только проблема, которую я вижу, - это размещение x на модулях. – tik27

+0

@ tik27 У меня Chrome 32.0.1700.76, и я вижу странное размещение, но все еще имею ту же проблему. – Shoe

ответ

2

Возможно, будет немного поздно, но может помочь другим.

Проблема в том, что Диалоги Dojo делают все возможное, чтобы сосредоточиться, вплоть до того, что, когда они теряют фокус, они снова набирают .focus() (See dijit/Dialog.js).

Насколько я могу судить, нет установки для отключения этого. Тем не менее, вы всегда можете переопределить функцию .focus() для немодальных диалогов, чтобы ничего не делать. E.G.,

var dialog = registry.byId("myDialog"); 
dialog.focus = function() { }; 
dialog.show(); 
+0

Спасибо за ответ, даже если поздно :) – Shoe

Смежные вопросы