0

在我的 jQuery 移动应用程序中,我将所有脚本加载到索引页面(比如 index.php),并且不使用任何(rel="external"data-ajax="false")来链接页面以保持应用程序加载完全使用 Ajax。但在我的应用程序中,我只想为一页运行脚本(比如 home.php),离开该页面后,我想终止正在使用的脚本。在 home.php 中,我正在使用$(document).on ('pageinit', function(){ }) 用于加载脚本。

但是我发现在离开该页面后,我在 home.php 中使用的脚本正在整个应用程序中运行。

如何停止通过page-init函数使用的脚本运行而不使用(rel="external"data-ajax="false")?

这是我在 home.php 中使用的代码,

<script type="text/javascript">
                $(document).on('pageinit', function(){
    var auto_refresh = setInterval(
             function ()
            {
                 /*  */
                $("#color-bar").load("controller/file.txt");
                        }, 3000);
                });
</script>

我想file.txt在离开 home.php 后停止加载。

4

1 回答 1

1

正如,奥马尔建议我想给一个 id 而不是 $(document). 使用pagebeforeshoworpageshowpagehide清除间隔将解决此问题。以下代码对我有用,

var auto_refresh;
$("#light-page").on('pagebeforeshow', function(){
  auto_refresh = setInterval(function () {
    // code
  }, 3000);
});

$('#light-page').on('pagehide', function () { 
  clearInterval(auto_refresh);
});

在 Html 中添加 id:

<div data-role="page" id="light-page">
   </div>
于 2013-08-26T11:29:51.603 回答