我有一个下拉列表,我可以选择setInterval
的时间。
test.php的:
<select id="proc_id" class="multiselect custom processselect" name="proc_id" style="display: none;">
<option>Select</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
如果选择&#34; 0&#34;停止执行setinterval
和1 1秒,2秒2秒。
test.js
var set_time = 0;
var interval;
$('#proc_id').change(function() {
set_time = $('#proc_id :selected').val();
// alert((set_time));
if(parseInt(set_time) > 0) {
set_time= set_time * 1000;
interval = setInterval(function() {
getFileProcessList(start_date);
getResultInfoList(start_date);
}, set_time);
}
else {
alert('bye');
clearInterval(interval);
}
});
如果我选择0
,则不会清除间隔。请任何人都可以帮助您停止setInterval
功能吗?
答案 0 :(得分:1)
您应该在开始新的间隔之前清除上一个间隔。您的代码应该像这样更新
var set_time = 0;
var interval = 0;
$('#proc_id').change(function(){
set_time=$('#proc_id :selected').val();
if(parseInt(set_time) > 0) {
set_time= set_time * 1000;
if (interval != 0) {
// clear previous interval before start the new one
clearInterval(interval);
}
interval = setInterval(function() {
getFileProcessList(start_date);
getResultInfoList(start_date);
}, set_time);
}
else {
clearInterval(interval);
interval = 0;
}
});
我已在此链接https://jsfiddle.net/mhL907eo/1/创建了一个示例,请检查。