我正在制作某种幻灯片系统,我使用JavaScript / jQuery / PHP来循环浏览不同的幻灯片。这一切都运行良好,但在幻灯片(动态加载到整页div)中,我还想刷新幻灯片的各个部分(幻灯片分成几个框)。
我每隔x秒使用SetInterval重新加载这些部分,但是,当幻灯片更改时,一段时间后出现相同的幻灯片,这些SetIntervals会叠加,导致部分重新加载太多次。
我已经尝试确认该元素是否仍然存在:
var refreshBox = setInterval(function(){
if ($('#box_<php id>').length > 0){
//Ajax/Refresh code
}else{
clearInterval(refreshBox);
}
}, ".$boxes_data['box_refresh']."000);
但那没有用。当相同的幻灯片重新出现时,间隔仍然起作用。
任何解决方案?
谢谢!
答案 0 :(得分:0)
已经设法通过创建全局数组来修复它:
window.refreshBox=new Array();
在数组中创建间隔:
refreshBox[".($boxes_data['box_id'])."] = setInterval(function(){
从数组中删除间隔:
clearInterval(refreshBox[".($boxes_data['box_id'])."]);