JQM: всплывающее окно не закрывается по таймауту?
Мне удалось заставить всплывающее окно открываться при загрузке страницы, но только при первом открытии этой страницы. Как только он открывается, я хочу, чтобы он закрылся сам по себе через несколько секунд, но я не могу этого сделать.
Это код, который я использую:
<script type="text/javascript" language="JavaScript">
$(document).on('pageshow', function (event) {
if (sessionStorage.popUpShown != 'true') {
$('#strelica').popup('open', {positionTo: '#hitnizbor'});
sessionStorage.popUpShown = 'true';
setTimeout(function () {
$("#strelica").popup("close");
}, 3000);
}
else{
alert('already shown the popup');
}
});
</script>
2 ответа
Ваш пример должен работать, но я сделал вам более безопасную версию: http://jsfiddle.net/Gajotres/Uauar/
$(document).on('pageshow', '#index', function(){
var start = setTimeout(function () {
$('#strelica').popup('open', {positionTo: '#hitnizbor'});
clearInterval(start);
}, 0);
var stop = setTimeout(function () {
$("#strelica").popup("close");
clearInterval(stop);
}, 3000);
});
Этот код можно использовать в каждом событии страницы, а не только в показе страниц. Если вы хотите, чтобы он выполнялся только один раз, используйте Pageinit.
ClearInterval здесь для предотвращения постоянного открытия и закрытия. Если у вас есть еще вопросы, не стесняйтесь спрашивать.
Вы используете плагин jquery? Я нашел ответ в jquery плагине popupjs:
$('a.popup').popup({
afterOpen : function(){
var popup = this;
setTimeout(function(){
popup.close();
}, 2000);
}
});
Возможно, вы пропустите официальный образец.