Я использую плагин jQuery jqModal .
Новичок в этом, так что я все еще изучаю его использование.
Я пытаюсь показать всплывающее окно, скажем, 3 секунды, а затем автоматически закрыть.
По сути, вот поток событий, которые я хочу:
- Моя страница загружается.
- Показать модальное всплывающее окно «Соединение с MySite ..»
- (через 3 секунды) модальное всплывающее окно автоматически закрывается.
- Обновить страницу (window.location.reload ());
Вот что у меня есть (не так много):
HTML:
<div id="jqPopupModal" style="display: none;">Connecting to My Site...</div>
JS:
window.onload = function() {
showPopup();
window.location.reload();
}
function showPopup() {
$('#jqPopupModal').jqm( { modal: true } );
$('#jqPopupModal').jqmShow();
}
Есть ли какой-то аргумент, который я могу передать функции .jqmShow (), чтобы установить тайм-аут для окна? Или я должен подключиться к обратному вызову onShow и сделать простой setTimeout?
Было бы также неплохо, если бы шаги 2 и 4 выполнялись асинхронно: другими словами, страница обновляется, пока отображается всплывающее окно jQuery.
Есть идеи?
EDIT:
Хорошо, у меня работает задержка открытия / закрытия, но не с window.location.reload()
. Положив это, не вызывает никаких задержек вообще.
Вот мой код:
function fbcPopupOnShow() {{
$('#fbcModalPopup').show();
window.location.reload();
window.setTimeout(new function() {{
$('#fbcModalPopup').jqmHide();
}}, 1000);
}}
function showFacebookConnectPopup() {{
$('#fbcModalPopup').jqm( {{
modal: true,
onShow: fbcPopupOnShow
}});
$('#fbcModalPopup').jqmShow();
}}
Я надеялся, что window.location.reload()
перезагрузит родительское окно, пока отображается всплывающее окно, а не одно или другое.
РЕДАКТИРОВАТЬ 2:
Выяснил, что не могу выполнить перезагрузку и всплывающее окно асинхронно, поскольку всплывающее окно jqModal на самом деле не является «всплывающим» (то есть, новое окно НЕ порождается). Это просто скрытый DIV.
Поэтому я только что изменил свой код для перезагрузки ПОСЛЕ того, как окно скрыто.