Javascript复选框选择/取消选择
我在JSP中使用java脚本问题是我需要在选中复选框时自动刷新它工作正常,但在取消选中时它不会停止自动刷新活动。plz建议 提前谢谢Javascript复选框选择/取消选择,javascript,Javascript,我在JSP中使用java脚本问题是我需要在选中复选框时自动刷新它工作正常,但在取消选中时它不会停止自动刷新活动。plz建议 提前谢谢 function autorefresh() { var isChecked = document.getElementById("is_check").checked; var time = 0; if (isChecked == true) { time = setInterval(function () {
function autorefresh() {
var isChecked = document.getElementById("is_check").checked;
var time = 0;
if (isChecked == true) {
time = setInterval(function () {
showExport()
}, 5000);
} else if (isChecked == false) {
clearInterval(time);
}
}
这是因为您正在
autorefresh
上下文中定义time
变量,因此它不再存储间隔的ID,您应该在函数之外定义它 将时间变量定义为全局变量:
window.time=0; //global declaration
function autorefresh() {
var isChecked = document.getElementById("is_check").checked;
if (isChecked == true) {
time = setInterval(function () {
showExport()
}, 5000);
} else if (isChecked == false) {
clearInterval(time);
}
}
在函数外部声明
time
。还请注意,您可以将if(x==true){…}else if(x==false){…}
减少为if(x){…}else{…}
@FelixKling-为什么?顺便说一下@NaimFS,setInterval(函数(){showExport()},5000)代码>-->setInterval(showExport,5000)代码>以便在函数调用之间保持不变。@FelixKling-是因为autorefresh
被多次调用吗?(尽管他从来没有在他的问题中说过,或者我可能错过了)@Derek朕會功夫: 为什么,这完全有道理:如果选中复选框,则开始间隔。如果未选中该复选框,请停止该复选框,等等。当然,再次选中该复选框时,应重新执行该复选框。