2013-03-04 152 views
0

我見過其他類似的問題,所以我的答案並不完全符合我的要求。我的問題與下面的代碼是關於變量隱藏JQuery懸停功能超時

以當前的形式隱藏對第一個懸停功能不可見,但我不想在更高的範圍內聲明它,因爲它在那裏沒有用處。如果在更高的範圍聲明它,則需要爲每個li創建一個不同的變量。

保持包含這兩個函數之間超時的變量的解決方案是什麼?

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

回答

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)); 
}); 
+0

值存儲正是我一直在尋找,謝謝! – 2013-03-04 16:53:12