0

私が達成しようとしているのは、「ボタン」がクリックされたときに表示されるメニューを用意することです(ボタンとメニューは別の要素にあるため、最初はマウスがメニューの上に置かれていません)。

タイムアウトの期間内にホバーされない場合、メニューは非表示にする必要があります (現在はこれを行いますが、最初にクリックしたときのみ)。

また、要素がホバーされた場合、マウスアウトで非表示にしてタイマーをクリアし、ボタンをもう一度クリックするとタイムアウトがリセットされます(おそらくリセットされませんか?)。

いくつかの化身を試しましたが、どれも正しく動作せず、アドバイスを求めています。これは私が現在使用しているものです:

var mytimer = window.setTimeout(function() {$('.menu-div').slideUp(function() {
        window.clearTimeout(this.mytimer);
})
}, 5000);

$().ready(function(){

    $('#menu-button').click(function () {
        $('.menu-div').slideDown();
        $(mytimer);
    });

    $('.menu-div').mouseenter(function() {
       window.clearTimeout(this.mytimer);
    });

    $('.menu-div').mouseout(function() {
        $('.menu-div').slideUp(200);
    });
});
4

1 に答える 1

0

このようなものが欲しいと思います(HTMLを提供していないため、推測にすぎません)

$(function(){
    var mytimer=0;  
    $('#menu-button').click(function () {
        $('.menu-div').slideDown();
        mytimer = setTimeout(function(){
            $('.menu-div').slideUp();
        }, 5000);
    });

    $('.menu-div').mouseenter(function() {
        clearTimeout(mytimer);
    });

    $('.menu-div').mouseleave(function() {
        $('.menu-div').slideUp();
    });
});

デモ

于 2013-01-07T02:14:49.810 に答える