$('.showmenu').bind("mouseenter", function (e) {
$('ul.secondul').show();
});
$('.showmenu').bind("mouseleave", function (e) {
$('ul.secondul').hide();
});
是否有辦法讓第二個函數不會立即啓動,但在1秒的延遲之後?因此,當用戶不小心將鼠標移出下拉菜單選項卡時,該選項卡將不會立即關閉,並讓用戶有機會將鼠標移回。因爲它是一個類,你可以有更多的.showmenu
項目使用jquery設置延遲或超時
$('.showmenu')
.bind("mouseenter", function (e) {
if($(this).data("timer"))
clearTimeout($(this).data("timer"));
$('ul.secondul').show();
})
.bind("mouseleave", function (e) {
$(this).data("timer", setTimeout(function(){
$('ul.secondul').hide();
}, 1000));
});
使用$(this).data
:
使用懸停:http://api.jquery.com/hover/ – 2013-04-25 18:50:10
http://stackoverflow.com/questions/2939980/jquery-how-to-sleep-or-delay的重複和所以很多其他。 – Colleen 2013-04-25 18:51:21
@Colleen你錯了。在這種情況下,Delay()不起作用。 – Jerry 2013-04-25 18:52:21