加载功能在pageshow和停止离开页面与jQuery移动

Load function on pageshow and stop on leaving the page with jQuery Mobile

本文关键字:jQuery 移动 离开 功能 pageshow 加载      更新时间:2023-09-26

我在表中检查新消息的运行函数遇到麻烦。当我打开message_page我想要这个'setInterval'函数开始运行,但离开页面后停止运行(我有一个html文件与多个页面)。有办法做到吗?因为我的脚本在离开页面后还在运行。

$(document).on('pageshow', '#message_page', function(){
    $('#chat_box').scrollTop($('#chat_box').height());
    setInterval( function() {checkNewMessages(c_key,m_fid);},1000);
});

下面是一个工作示例:http://jsfiddle.net/Gajotres/QUCUt/

$(document).on('pagebeforeshow', '#index', function(){       
    timerHandler.timer1 = setInterval(function () {
        $('#test-input').val(parseInt($('#test-input').val()) + 1);
    }, 1000);
});
$(document).on('pagebeforehide', '#index', function(){       
    clearInterval(timerHandler.timer1);
});
var timerHandler = {
    timer1 : null
}

让我解释一下。如果您将计时器创建为对象变量,则可以在任何时刻访问它。在这种情况下,pagebeforeshow事件将启动计时器,而pagebeforehide将暂停计时器。你可以在我的例子中测试它,让它运行一会儿,然后转到第二页,等一会儿再返回。您将看到计时器已被暂停。