0

SOでこれに似た質問を他にも見ましたが、答えは私が探しているものではありませんでした。以下のコードに関する私の問題は、変数hideに関するものです。

現在のフォームでは、 hideは最初のホバー関数には表示されませんが、そこでは役に立たないため、より高いスコープで宣言したくありません。さらに、より高いスコープで宣言するには、liごとに異なる変数を作成する必要があります。

これらの2つの関数間のタイムアウトを含むこの変数を維持するための解決策は何ですか?

$('li').hover(function() {
    clearTimeout(hide);
    $('.menu', this).show();
}, function() {
    var menu = $('.menu', this);
    var hide = setTimeout(function() {
        menu.hide();
    }, 500);
});
4

1 に答える 1

2

値を保存できます.data()

$('li').hover(function() {
    clearTimeout($(this).data('hide'));
    $('.menu', this).show();
}, function() {
    var menu = $('.menu', this);
    $(this).data('hide', setTimeout(function() {
        menu.hide();
    }, 500));
});
于 2013-03-04T16:45:16.097 に答える