javascript - JQM : popup not closing on timeout?

标签 javascript html jquery-mobile setinterval jquery-mobile-popup

我设法在页面加载时打开一个弹出窗口,但仅限于第一次打开该页面时。一旦它打开,我希望它在几秒钟后自行关闭,但我无法做到这一点。

这是我正在使用的代码:

<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>

最佳答案

你的例子应该可以工作,但我给你做了一个更安全的版本: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);
});

此代码可用于每个页面事件,而不仅仅是 pageshow。如果您希望它只执行一次,请使用 pageinit。

ClearInterval 是为了防止不断打开和关闭。如果您有更多问题,请随时提问。

关于javascript - JQM : popup not closing on timeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079450/

相关文章:

javascript - 将页面拆分为多个编号的 Div,并在单击以显示隐藏内容时重新加载整个页面

jquery - iPhone 键盘在 phonegap 中将页面向上推

javascript - Angularjs 和 jQuery 移动 slider 指令

javascript - 使用 Javascript 将弹出窗口居中并传递 html 的正确方法

javascript - 在 AppModule 声明后添加提供程序

javascript - 在 HTML 选择/选项下拉列表中携带一些额外信息

html - 使用 Bootstrap 如何水平布局元素?

html - 将 HTML 框定位在一个向下的三 Angular 形中

javascript - 无法使用 PhoneGap Build 引用外部文件

javascript - 简单地遍历一个数组