0

メニューのスライドショーを調整しようとしており、メニュー内の 4 つの項目ごとにコードの一部を以下に示しています。特定のメニュー項目にカーソルを合わせると、対応する div がディスプレイに表示されるようにしました。タイムアウトも追加したので、あるメニュー項目から別のメニュー項目にすばやく移動した場合、ある div から別の div にすばやく切り替わることはありません。希望どおりに機能させるために私が今持っている問題は、たとえば200ミリ秒後にそのメニュー項目に切り替える前に、カーソルがまだ特定のメニュー項目の上にあるかどうかを確認するようにするにはどうすればよいですか? コメントやヘルプをいただければ幸いです。ありがとう。

$("div#menu .reps").hover(function() {
    window.clearTimeout(timeoutID);
    timeoutID = window.setTimeout(hoverFunctionReps, 280);
});

function hoverFunctionReps(){
    if(current_slide != "reps"){

        $(".arrow").animate({"left":"135px"});

        if(current_slide == "clients"){
            $(".clients_display").stop(true,true).fadeOut().hide();
            $(".reps_display").fadeIn().show();
            current_slide = "reps";
        }
        else if(current_slide == "services"){
            $(".services_display").stop(true,true).fadeOut().hide();
            $(".reps_display").fadeIn().show();
            current_slide = "reps";
        }
        else{
            $(".training_display").stop(true,true).fadeOut().hide();
            $(".reps_display").fadeIn().show();
            current_slide = "reps";
        }
    }
}
4

1 に答える 1

0

おそらく次のようなものです:

http://jsfiddle.net/lucuma/ZgNKG/

var timeoutID;

$(document).ready(function() {
$("a").hover(function() {
    window.clearTimeout(timeoutID);
    $(this).data('hashover', '1');
    var that = this;
     timeoutID=window.setTimeout(
        (function() {
        hoverFunctionReps(that); 
        }), 280);

}, function() {
    $('span', this).hide();
   $(this).data('hashover', '0');
});

function hoverFunctionReps(me) {
    if ($(me).data('hashover') == '1') {
        $('span', me).show();
    }
}
});​
于 2012-06-05T18:30:25.703 に答える