每30秒执行一个函数的jQuery mobile方法?

3
我有一个使用jQuery Mobile和PhoneGap开发的应用程序。我希望在用户停留在特定页面30秒后执行一个函数。
如果用户停留在page1页面,我想每30秒执行一次一个函数。
更简单地说,如果当前页面是page1,则每30秒触发getmessages()函数。
如何实现这个功能?
4个回答

3

使用setInterval

查看此演示

<div id="div2>
<input type="text" name="divText" value="q3"/>
</div>

setInterval(function() {
 alert('HI')
}, 30000);

时间以毫秒为单位(1000= 1秒)


1

You can setInterval.

Code:

$(document).ready(function(){
function myFunction()
{
setInterval(function(){alert("Hello")},3000);
}

$('#click').click(function(){

myFunction()

})

})

HTML:

<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<p>After clicking away the alert box, an new alert box will appear in 3 seconds. This goes on forever...</p>
<button id="click">Try it</button>

根据您的需求,将3000(3秒)--> 30000(30秒)进行替换。

演示链接 http://jsfiddle.net/dhana36/2c4ps/


1
如果您正在使用jQuery Mobile 1.4,您需要监听pagecontainershowpagecontainerhide事件,以便根据页面id执行基于interval的函数。在这些事件中检索页面的id,然后使用switch / case来执行函数,同时在页面隐藏时使用clearInterval
/* setInterval function's name */
var interval;

/* 1) On page show, retrieve page's ID and run checkPage()
   2) On page hide, clearInterval() */
$(document).on("pagecontainershow", function () {
    var activePage = $.mobile.pageContainer.pagecontainer("getActivePage")[0].id;
    checkPage(activePage);
}).on("pagecontainerhide", function () {
    clearInterval(interval);
});

/* Run function(s) based on page's ID */
function checkPage(page) {
    switch (page) {
        case "p1":
            interval = setInterval(function () {
                /* function(s) */
            }, 30000);
            break;
        case "p2":
            interval = setInterval(function () {
                /* function(s) */
            }, 30000);
            break;
    }
}
Demo 的HTML代码保留不变。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接