我工作的一个div(父),有其他两个div(菜单和内容)如下:确保特定的setInterval函数实例运行一次
<div id="parent">
<div id="menu"></div>
<div id="content"></div>
</div>
内容在内容加载的div是一个具有几个JavaScript功能的html文件,例如每5秒重新加载其内容的自动刷新。
$(document).ready(function() {
setInterval(function() {
grid.reloadDefaultContent(); //this reloads the content on content div.
}, 5000);
}
页面上有一些链接将不同内容加载到内容div中。到目前为止,这很好,直到我回到具有自动刷新功能的“家”。问题是自动刷新从来没有停止过,现在我点击返回到家中,该功能运行两次(或多少次我改变页面并回到家中),将会话放在上面。 我使用jQuery $.load()
加载页面。
关于如何让setInterval的实例运行的任何想法只运行一次?
编辑:在阅读我自己的问题后,我看到它有点不清楚。我的主要问题是,当我回到家时,我的第一个setInterval实例已经在运行,并且第二个实例开始运行,使得自动刷新速度提高了5秒,并且每次我都会更快更快地运行更改页面并返回主页。这不是我想要的行为。我需要的是在更改div上的内容时停止setInterval的实例,并在我回到主页时重新启动它。
“独立于用户更改页面/ div内容”是什么意思?目前还不清楚与定时器问题有什么关系。 – Pointy 2011-05-30 19:10:55
如何定义'grid'?它是全球性还是内部封闭? – 2011-05-30 19:10:56
@Pointy:我把它当作“我没有选择使用'setTimeout'而不是'setInterval'”。但我可能是错的... – 2011-05-30 19:11:35