[英]switch checked check-box with time interval in javascript
我是 javascript 的完全菜鳥,目前在項目中遇到問題。
我正在嘗試制作帶有特定過渡的圖片幻燈片。 幻燈片建立在過渡的標簽上(復選框)。 我嘗試制作一個腳本,每 5 秒更改一次復選框。
我已經從朋友那里得到了很多幫助,但我根本無法讓它發揮作用。
這是腳本:
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();
這是我正在談論的滑塊: http : //demo.br-photography.ch/Portal/transitions/index_3.html
我做了一個 jsfiddle,更容易測試原因然后我們可以看到沒有 css 屬性的復選框是否實際切換。 他們這樣做了,但是我在測試站點上的幻燈片沒有按應有的方式切換圖像......?
嘗試:
var slider_i = 0; // !!!
var slider_change = function (){
if(++slider_i > 4){
slider_i=0;
}
document.getElementById('select-img-'+slider_i).checked = true;
setTimeout(slider_change, 50000);
};
slider_change();
或者
var slider_i = 1;
var slider_change = function (){
if(slider_i++ > 3){ // !!!
slider_i=1;
}
document.getElementById('select-img-'+slider_i).checked = true;
setTimeout(slider_change, 50000);
};
slider_change();
您的代碼實際發生了什么:
slider_i
設置為 1。slider_change
被調用slider_i
因為++slider_i
slider_i
的值為2
<4
slider_i
值 > 的slider_i
最后一步生成select-img-2
的 id。
select-img-1
永遠不會到達。 我不知道這是否會導致任何后續錯誤。
供您參考, setTimeout(, 50000) 在 50000 ms = 50sec 后觸發。 如果你想等待 5 秒你必須寫 setTimeout(, 5000)
只需將腳本從上到下放置。 由於初始頁面加載時元素(復選框)不可用,因此存在引用錯誤。
或者你也可以為這個問題添加 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();
用
//Repeats forever
var variable = setInterval(functionYouWantToCall, 5000);
//Cancel the interval
clearInterval(variable);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.