私はこれを学んだので、できるだけ明確に説明しようと思います。JavaScript clearIntervalは一度しか動作しませんか?
私はループする機能を持っています。私が達成したいのは、何かがループの上をぶら下がって停止してから、カーソルが離れるときに再び始まるときです。これは正しく動作しているようですが、私がマウスを動かすと、離してから再びマウスを動かすと、アニメーションはループし続けます。最悪の場合は、マウス入力/マウス出力を2回実行するとループ間隔が更新され、設定した時間内に2回ループします。
とにかく、これは私が働いている私のコードです:ホバーアウトで
var transition_delay = "3000";
function next_image(){
var current_eq = $('ul#triggers li.current_trigger').index();
if (current_eq == li_count) { //if this is the last image in the array
$triggers.removeClass("current_trigger").eq(0).addClass("current_trigger"); //removes current and adds it to next
$displays.fadeOut("slow").eq(0).fadeIn("slow"); //fades out then in next display
}
else { //if not last image
$triggers.removeClass("current_trigger").eq(current_eq + 1).addClass("current_trigger"); //removes current class and adds it to next
$displays.fadeOut("slow").eq(current_eq + 1).fadeIn("slow"); //fades out then next display in
}
};
$triggers.hover(
function(){ //in
console.log("clearing");
clearInterval(next_image_interval);
},
function(){ //out
console.log("starting");
sliderIntervalID = setInterval(function(){next_image();},,transition_delay);
});
next_image_interval = setInterval(function(){
next_image();
}, transition_delay);
ホバーアウトハンドラの二重カンマは何ですか( 'transition_delay'の直前)...? – cHao
'sliderIntervalID = setInterval'は' next_image_interval'ですか? – Cheery
ところで、 'function(){next_image();}'はここでは 'nextImage'と置き換えることができます(例:' setInterval(next_image、transition_delay); ')。 'function'ラップはたくさんのものを呼び出したり、スコープを拡張したりするのに適していますが、ここでは必要ありません(あなたがやっているのは一つの関数を呼び出すだけです)。 – cHao