0

JavaScript で間隔 onclick をリセットするにはどうすればよいですか。次のチュートリアルがあり、すべてが機能しますが、クリックするとサイドショーを再開できます。

var myImage = document.getElementById("mainImage");

var imageArray = ["_images/overlook.jpg","_images/winery_sign.jpg","_images/lunch.jpg",
             _images/bigSur.jpg","_images/flag_photo.jpg","_images/mission_look.jpg"];
                 var imageIndex = 0;


function changeImage (){
    myImage.setAttribute("src",imageArray [imageIndex]);
    imageIndex++;

if (imageIndex >= imageArray.length){
    imageIndex = 0;
}
 }

 var intervalHandler = setInterval(changeImage, 5000);
myImage.onclick = function (){
    clearInterval(intervalHandler);
}

**// The code below doesn’t work**

 var intervalReset = clearInterval;
myImage.onclick = function (){
    setInterval(intervalReset);
};
4

2 に答える 2

0

ハンドラーを置き換えるonclickため、 2回設定しているため、後の定義のみがカウントされます。代わりに使用してください:addEventListener

myImage.addEventListener("click", function() {
    //first set of stuff
});

myImage.addEventListener("click", function() {
    //more stuff
});

そして、あなたの最初の機能だけが理にかなっています。imageIndex0にリセットすることもできます。

全体として、コードは次のようになります。

var intervalHandler = setInterval(changeImage, 5000);
myImage.addEventListener("click", function() {
    clearInterval(intervalHandler);
    imageIndex = 0;
    intervalHandler = setInterval(changeImage, 5000); //restart again
});
于 2013-01-09T11:19:02.873 に答える