在javascript中使用时间间隔切换选中复选框
我对javascript一窍不通,目前在一个项目上遇到了问题 我正在尝试制作一张带有特定过渡的幻灯片。幻灯片构建在过渡复选框的基础和标记上。我试着制作一个脚本,每5秒更改一次复选框 我已经从一个朋友那里得到了很多帮助,但我根本无法让它发挥作用 以下是脚本:在javascript中使用时间间隔切换选中复选框,javascript,html,checkbox,intervals,Javascript,Html,Checkbox,Intervals,我对javascript一窍不通,目前在一个项目上遇到了问题 我正在尝试制作一张带有特定过渡的幻灯片。幻灯片构建在过渡复选框的基础和标记上。我试着制作一个脚本,每5秒更改一次复选框 我已经从一个朋友那里得到了很多帮助,但我根本无法让它发挥作用 以下是脚本: var slider_i = 1; function slider_change(){ if(++slider_i > 4){ slider_i=1; } docum
var slider_i = 1;
function slider_change(){
if(++slider_i > 4){
slider_i=1;
}
document.getElementById('select-img-'+slider_i).checked = true;
setTimeout(slider_change, 5000);
}
slider_change();
这是我说的滑块:
我制作了一个jsfiddle,更容易测试,因为这样我们就可以看到没有css属性的复选框是否真正切换了。是的,但是我在测试网站上的幻灯片没有像它应该的那样切换图像
尝试:
或
您的代码实际发生了什么:
滑块i设置为1。
调用函数slider\u change
它首先增加滑块i,因为有++滑块i
现在滑块i的值为2
它现在检查以获取您的信息,setTimeout,50000毫秒=50秒后触发50000。
如果您想等待5秒,您必须写入setTimeout,5000,只需将脚本从上到下放置即可。存在引用错误,因为最初加载页面时ElementScheckBox不可用 或者,您也可以为此问题添加try-catch块,如下所示: 替换这个
var slider_i = 1;
function slider_change(){
if(++slider_i > 4){
slider_i=1;
}
document.getElementById('select-img-'+slider_i).checked = true;
setTimeout(slider_change, 5000);
}
slider_change();
关于这一点:
var slider_i = 1;
function slider_change(){
if(++slider_i > 4){
slider_i=1;
}
try{
document.getElementById('select-img-'+slider_i).checked = true;
}catch(err){}
setTimeout(slider_change, 5000);
}
slider_change();
使用
复选框在哪里?什么对你不起作用?复选框是“不可见的”。它们基本上被剥离成一个矩形,覆盖垂直面板,4个水平排列@itzmukeshy7我希望复选框能够自动切换,而无需访问者进行任何操作。感谢您指出这一点!那有点打字错误。虽然设置为5000毫秒,甚至只有1000毫秒,但它仍然没有采取任何行动。我尝试了这一点,它在没有所有css属性的JSFIDLE中像一个符咒一样工作:尽管在我的网站上,它似乎根本不会影响幻灯片。。。哇!成功了!非常感谢你!一个我自己绝对不会想到的细节。问题解决了。
var slider_i = 1;
function slider_change(){
if(++slider_i > 4){
slider_i=1;
}
document.getElementById('select-img-'+slider_i).checked = true;
setTimeout(slider_change, 5000);
}
slider_change();
var slider_i = 1;
function slider_change(){
if(++slider_i > 4){
slider_i=1;
}
try{
document.getElementById('select-img-'+slider_i).checked = true;
}catch(err){}
setTimeout(slider_change, 5000);
}
slider_change();
//Repeats forever
var variable = setInterval(functionYouWantToCall, 5000);
//Cancel the interval
clearInterval(variable);