جافا سكريبت - إيقاف setInterval
أريد أن أتوقف عن تشغيل هذا الفاصل في معالج error بشكل متكرر. هل هذا ممكن، وإذا كان كذلك، كيف؟
// example code
$(document).on('ready',function(){
setInterval(updateDiv,3000);
});
function updateDiv(){
$.ajax({
url: 'getContent.php',
success: function(data){
$('.square').html(data);
},
error: function(){
$.playSound('oneday.wav');
$('.square').html('<span style="color:red">Connection problems</span>');
// I want to stop it here
}
});
}
الإجابة رقم 1
تحتاج إلى تعيين قيمة الإرجاع الخاصة بـ setInterval إلى متغير داخل نطاق معالج النقر، ثم استخدام clearInterval() بهذه الطريقة:
var interval = null;
$(document).on('ready',function(){
interval = setInterval(updateDiv,3000);
});
function updateDiv(){
$.ajax({
url: 'getContent.php',
success: function(data){
$('.square').html(data);
},
error: function(){
clearInterval(interval); // stop the interval
$.playSound('oneday.wav');
$('.square').html('<span style="color:red">Connection problems</span>');
}
});
}
الإجابة رقم 2
استخدم متغيرًا واستدعِ clearInterval لإيقافه.
var interval;
$(document).on('ready',function()
interval = setInterval(updateDiv,3000);
});
function updateDiv(){
$.ajax({
url: 'getContent.php',
success: function(data){
$('.square').html(data);
},
error: function(){
$.playSound('oneday.wav');
$('.square').html('<span style="color:red">Connection problems</span>');
// I want to stop it here
clearInterval(interval);
}
});
}
الإجابة رقم 3
عليك تعيين القيمة المرجعة من دالة setInterval لمتغير
var interval;
$(document).on('ready',function(){
interval = setInterval(updateDiv,3000);
});
ثم استخدم clearInterval(interval) لمسحه مرة أخرى.
