嘿伙计我有一个javascript函数,即使在Jquery Mobile中导航到另一个页面(单页模板不是多页面)时仍然保持持久性
<script type="text/javascript">
setInterval("window.location.reload();", 5000);
</script>
我如何确保这只发生在调用它的页面上,而不是在我使用基于ajax的导航链接到的每个页面上调用它?
我正在使用Jquery Mobile 1.2
答案 0 :(得分:3)
将其绑定到您希望其发生的页面。将 $('.selector')
替换为pageID,例如$('#home')
。您也可以更具体$('div[data-role="page"]#PageID')
。
// Trigger interval
$('.selector').bind('pageinit', function () {
setInterval("window.location.reload();", 5000);
});
// Stop interval when navigating away
$('.selector').bind('pagehide', function () {
clearInterval();
});
答案 1 :(得分:2)
我如何确保这仅发生在它所在的页面上 调用而不是在我用ajax链接的每个页面上调用它 基于导航?
不要打电话吗?目前,当您的代码包含在页面中时,您的代码将设置为始终运行。要么不包含它,要么阻止它以其他方式运行(例如if语句)。
答案 2 :(得分:2)
您可以在导航前清除间隔。
首先,您需要在创建时获得对间隔的引用:
var intervalRef = setInterval("window.location.reload();", 5000);
然后你可以这样清除它:
clearInterval(intervalRef);
// Navigate
答案 3 :(得分:2)
只需在加载其他页面时或当前页面退出时(其他页面加载在ajax中,以便时间间隔保持不变)取消超时。
// trigger
myInterval = setInterval("window.location.reload();", 5000);
// stop
clearInterval(myInterval);