まず、コードの行の 1 つでキーワード「IF」を見逃しています。
ただし、終了可能な反復アクションを作成する方法は、setInterval を使用してから、clearInterval を使用して反復を終了することです。
semaphore = setInterval(somefunction, someinterval);
clearInterval(semaphore);
例(私はこれをすぐに書いたので、いくつかのエラーがあるかもしれませんが、あなたはアイデアを得ることができます):
<img src="./images/image1.jpg" id="imageGallery" name="imageGallery"
onclick="chooseImg(this)" />
<script>
var turn = setInterval(function(){imgTurn()},5000);
var images = function2CreateImgArray();
var imageN = 0;
function chooseImg(img){
clearInterval(turn);
function2DisplayImg(imageN); // or do whatever
}
function imgTurn(){
if (imageN++ >= images.length) imageN = 0;
function2DisplayImg(imageN++);
}
</script>
setInterval を setTimeout に置き換えることができます。
var turn = setTimeout(function(){imgTurn()},5000);
ただし、それを停止するには clearTimeout を使用する必要があります。
clearTimeout(turn);
ただし、setTimeout を使用すると、次の画像表示のために setTimeout が必要になるため、回転を停止するために clearTimeout を行う必要さえありません。
<img src="./images/image1.jpg" id="imageGallery" name="imageGallery"
onclick="chooseImg(this)" />
<script>
setTimeout(function(){imgTurn()},5000);
var images = function2CreateImgArray();
var imageN = 0;
var turn = 1;
function chooseImg(img){
turn = 0;
function2DisplayImg(imageN); // or do whatever
}
function imgTurn(){
if (turn==0) return;
if (imageN++ >= images.length) imageN = 0;
function2DisplayImg(imageN++);
}
</script>