我想在我的网站中自动重新加载div。如果我点击底部脚本重新加载另一个div,当我使用clearInterval来停止interval1
时,它不再工作脚本重新加载interval1
,当我使用console.log间隔时,我发现false并且脚本再次重新加载clearInterval不工作或?? ??
<script type="text/javascript">
var interval2;
var interval1;
$(document).ready(function() {
var get_template = function() {
$("#live-grouped-odds-current").load("template.php");
}
interval2 = setInterval(get_template, 6000);
$("#live_details").click(function() {
clearInterval(interval2);
console.log(interval2);
$('#live-overview-menuitem').removeClass('Actual');
$('#live_details').addClass('Actual');
$("#button_sp").css('display', 'none');
$("#button_dt").css('display', 'block');
clearInterval(interval2);
interval2 = false;
$("#live-grouped-odds-current").empty();
$("#loader12").css('visibility', 'visible');
$("#live-grouped-odds-current").load("details.php");
});
$("#loader12").css('visibility', 'visible');
$.get("details/events.php", function(data1) {
$("#event_list").html(data1);
});
$("#loader12").css('visibility', 'hidden');
var refresh = function() {
$.get("details/events.php", function(data1) {
$("#event_list").html(data1);
});
$.get("details/simple_event.php", function(data) {
$("#simple_event").html(data);
});
}
interval1 = setInterval(refresh, 6000);
});
function simple_event(id) {
clearInterval(interval1);
$('.Event').removeClass('Actual');
$("#" + id).attr('class', 'Actual');
$("#simple_event").empty();
$("#loader12").css('visibility', 'visible');
$.get("details/simple_event.php?id=" + id, function(data) {
$("#simple_event").html(data).hide();
$("#simple_event").slideDown(1000);
//alert( "Load was performed." );
$("#loader12").css('visibility', 'hidden');
});
interval1 = setInterval(refresh, 6000);
}
</script>
答案 0 :(得分:3)
当您调用clearTimeout时,表示不会再次触发间隔,但如果$("#live-grouped-odds-current").load("template.php");
仍在运行,则会完成。如果$("#live-grouped-odds-current").load("template.php");
花费的时间超过6000毫秒,您将开始并行执行多个请求。 (我认为最好使用setTimeout)
第一次调用clearInterval(interval2)后,将interval2设置为 undefined
$("#live_details").click(function() {
clearInterval(interval2);
inteval2 = undefined;
});
并将 get_template 更改为
var get_template = function() {
$.get("template.php", function( data ) {
if (inteval2 !== undefined) {
$("#live-grouped-odds-current").html( data );
}
});
}
如果间隔已被清除,#live-grouped-odds-current
将不会被注明日期