2012-12-22 42 views
6

我想實現的是當鼠標不徘徊menu3時,系統會不斷檢查aboutMenu是否徘徊,如果是,則提醒'h',並提醒'nh'等。問題是隻有當鼠標離開menu3時才檢查一次,如何解決這個問題?謝謝。保持檢查狀態,而不是一次性檢查jquery/js

$('#menu3').live('mouseout',function() { 

$("#aboutMenu").hover(function() { 
    $(this).data("hovered", true); 
}, function() { 
    $(this).data("hovered", false); 
}); 

if ($("#aboutMenu").data("hovered")) { 
    alert ('h'); 
} else { 
    alert ('nh'); 
} 
}); 

更新時間:

或者其他的方式做,這是該系統繼續檢查菜單3或是否aboutMenu盤旋,如果沒有,懸停消息彈出。但是,這隻會在頁面初始化時運行一次,如何讓它繼續檢查?謝謝

$(document).ready(function() { 
$("#aboutMenu,#menu3").hover(function() { 
$(this).data("hovered", true); 
}, function() { 
    $(this).data("hovered", false); 
}); 

if ($("#aboutMenu,#menu3").data("hovered")) 
alert ('hovered'); 
}); 
+3

爲什麼懸停在moueout? (它沒有意義-imo) –

+0

更新的問題,請看看 – user782104

回答

4
function checkHover() { 
    if ($("#aboutMenu,#menu3").hasClass("hovered")) { 
    alert ('hovered'); 
    //other stuff if hovered 
    } 
    else { 
    //other stuff if not hovered 
    } 
} 

$(document).ready(function() { 
    $("#aboutMenu,#menu3").hover(function() { 
    $(this).addClass("hovered"); 
    }, function() { 
    $(this).removeClass("hovered"); 
    }); 

    setInterval(checkHover, 1000); 
}); 
1

想定期檢查hoverstate嗎?

function chkhover(){ 
    if ($('#aboutMenu').is(':hover')){ 
     alert('#aboutMenu hoverstate is: hovered'); 
    } 
    setTimeout(chkhover, 500); 
} 

$(document).ready(chkhover); 

看到這個jsfiddle。順便說一下,它也演示了一個純CSS的解決方案。