私は次のコードを持っています:
// After 8 seconds change the slide...
var timeout = setTimeout("changeSlide()", 8000);
$('div.slideshow').mouseover(function() {
// If the user hovers the slideshow then reset the setTimeout
clearTimeout(timeout);
});
$('div.slideshow').mouseleave(function() {
clearTimeout(timeout);
var timeout = setTimeout("changeSlide()", 8000);
});
私がしたいのは、誰かがスライドショーdivをホバーしない限り、関数changeSlideをループ内で8秒ごとに実行することです。カーソルを削除したら、もう一度タイムアウトを実行します。
ただし、ループは1回だけ発生し、ホバーによってタイムアウトが停止したり、再開したりすることはありません:/
編集:
これは素晴らしいループですが、ホバーをオンまたはオフにすると、関数が複数回実行されます。
// After 8 seconds change the slide...
var timeout = setInterval(changeSlide, 2000);
$('div.slide').mouseover(function() {
// If the user hovers the slideshow then reset the setTimeout
clearInterval(timeout);
});
$('div.slide').mouseleave(function() {
clearInterval(timeout);
var timeout = setInterval(changeSlide, 2000);
});