Jquery Mobile - 导航到另一个页面时Javascript持久存在

时间:2013-03-27 16:46:46

标签: javascript jquery jquery-mobile

嘿伙计我有一个javascript函数,即使在Jquery Mobile中导航到另一个页面(单页模板不是多页面)时仍然保持持久性

    <script type="text/javascript">
       setInterval("window.location.reload();", 5000);
    </script>

我如何确保这只发生在调用它的页面上,而不是在我使用基于ajax的导航链接到的每个页面上调用它?

我正在使用Jquery Mobile 1.2

4 个答案:

答案 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);