Vous devez définir c = 1
pour commencer, de sorte que ++c
fonctionnera :
(certains programmeurs préfèrent alterner entre 0
y 1
alors que votre code original basculait entre 1
y 2
. Les deux fonctionnent et c'est à vous de décider).
Basculer entre 0
y 1
:
(J'aurais également pu utiliser prop()
au lieu de attr()
mais de rester proche de votre version originale :)
let c = 0;
setInterval(function() {
if (c === 0) {
imgExt = 'https://i.imgur.com/GCPeHoX.png';
++c;
} else {
imgExt = 'https://i.imgur.com/J2wgZZb.png';
--c;
}
// document.querySelector('#floorImgId').src = imgExt;
$('#floorImgId').attr('src', imgExt);
}, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img id="floorImgId">
S'il s'agit d'une simple bascule, j'ai tendance à l'utiliser :
let toggle = true;
setInterval(function() {
if (toggle) {
imgExt = 'https://i.imgur.com/GCPeHoX.png';
} else {
imgExt = 'https://i.imgur.com/J2wgZZb.png';
}
toggle = !toggle;
// document.querySelector('#floorImgId').src = imgExt;
$('#floorImgId').attr('src', imgExt);
}, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img id="floorImgId">
Pour cacher le toggle
afin qu'il ne contamine pas la portée extérieure, il suffit d'envelopper le tout dans un IIFE, ou vous pouvez également utiliser :
setInterval((function() {
let toggle = true;
return function() {
if (toggle) {
imgExt = 'https://i.imgur.com/GCPeHoX.png';
} else {
imgExt = 'https://i.imgur.com/J2wgZZb.png';
}
toggle = !toggle;
// document.querySelector('#floorImgId').src = imgExt;
$('#floorImgId').attr('src', imgExt);
};
}()), 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img id="floorImgId">