2013-05-10 4 views
1

Я пытаюсь создать модальное диалоговое окно с вертикальной прокруткой для содержимого, которое переполняется. Для демонстрационных целей это диалоговое окно содержит якорь и кучу div (для переполнения). Вот мой код:jQuery UI: ошибка модального диалога?

HTML-

<body> 
    <div id="dialog"> 
    <a href="javascript:void(null);">blah blah blah</a> 
    <div>some content to make the dialog scroll appear</div> 
    <div>some content to make the dialog scroll appear</div> 
    <div>some content to make the dialog scroll appear</div> 
    <div>some content to make the dialog scroll appear</div> 
    <div>some content to make the dialog scroll appear</div> 
    <div>some content to make the dialog scroll appear</div> 
    </div> 
</body> 

JQuery

$(document).ready(function() { 
    $('#dialog').dialog({ 
    position: 'center', 
    height: 300, 
    width: 200, 
    modal: true 
    }); 
}); 

Демо: JS Bin

Чтобы воспроизвести проблему:

  1. Прокрутите вниз до нижней части диалогового окна
  2. Lose фокус на окне фактического браузера (перейти в другое окно, щелкните на рабочем столе и т.д.)
  3. наведите курсор мыши на окне в несфокусированном окне браузера
  4. Щелкните в диалоговом окне (или просто свести к минимуму/максимизировать окна браузера)

Результат должен быть диалоговое окно прокрутки назад к верхней тега привязки («бла-бла-бла»). (Это может потребовать нескольких попыток потерять фокус/щелчок в диалоговом окне). Код JS Bin использует jQuery UI 1.10.2, но это происходит и в .3.

Я считаю, что моя проблема может быть похожа на this SO question, но это немного отличается, потому что я использую привязывающие метки ... однако, линия hasFocus.eq(0).focus(); является виновником. Когда эта часть выполняется для меня, у нее есть мой якорный тег в качестве первого элемента массива hasFocus. В любом случае, поведение по умолчанию для диалогового окна не должно прокручиваться назад ... оно должно оставаться там, где оно есть!

Теперь интересная часть - это когда вы забираете modal: true, вопрос больше не существует ... поэтому я не уверен, что это ошибка, или если это «особенность». У кого-нибудь есть мысли?

Кроме того, я тестировал это в Firefox (несколько версий и безопасный режим) и IE8.

+0

Соответствующий jQuery UI [отчет об ошибке] (http://bugs.jqueryui.com/ticket/9101). – incutonez

ответ

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