Я пытаюсь создать модальное диалоговое окно с вертикальной прокруткой для содержимого, которое переполняется. Для демонстрационных целей это диалоговое окно содержит якорь и кучу 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
Чтобы воспроизвести проблему:
- Прокрутите вниз до нижней части диалогового окна
- Lose фокус на окне фактического браузера (перейти в другое окно, щелкните на рабочем столе и т.д.)
- наведите курсор мыши на окне в несфокусированном окне браузера
- Щелкните в диалоговом окне (или просто свести к минимуму/максимизировать окна браузера)
Результат должен быть диалоговое окно прокрутки назад к верхней тега привязки («бла-бла-бла»). (Это может потребовать нескольких попыток потерять фокус/щелчок в диалоговом окне). Код JS Bin использует jQuery UI 1.10.2, но это происходит и в .3.
Я считаю, что моя проблема может быть похожа на this SO question, но это немного отличается, потому что я использую привязывающие метки ... однако, линия hasFocus.eq(0).focus();
является виновником. Когда эта часть выполняется для меня, у нее есть мой якорный тег в качестве первого элемента массива hasFocus
. В любом случае, поведение по умолчанию для диалогового окна не должно прокручиваться назад ... оно должно оставаться там, где оно есть!
Теперь интересная часть - это когда вы забираете modal: true
, вопрос больше не существует ... поэтому я не уверен, что это ошибка, или если это «особенность». У кого-нибудь есть мысли?
Кроме того, я тестировал это в Firefox (несколько версий и безопасный режим) и IE8.
Соответствующий jQuery UI [отчет об ошибке] (http://bugs.jqueryui.com/ticket/9101). – incutonez