2012-12-22 11 views
6

Was ich erreichen möchte, ist, wenn die Maus nicht im Menü 3 bleibt, das System überprüft, ob das aboutMenu schwebt, wenn ja, alert 'h', und warnt 'nh' andere. Das Problem ist es nur einmal zu überprüfen, wenn die Maus menu3 verlässt, wie man dieses Problem beheben kann? Vielen Dank.Überprüfe die Bedingung, anstatt die einmalige Überprüfung in 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'); 
} 
}); 

Aktualisiert:

Oder anders zu tun, dies ist das System ist zu prüfen, ob halten menu3 oder aboutMenu schwebte ist, wenn nicht, die hovered- Nachricht Popup ist. Dies wird jedoch nur einmal ausgeführt, wenn die Seite initialisiert wird. danke

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

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

warum schweben sogar in moueout ??? (es macht keinen Sinn-Imo) –

+0

aktualisierte Frage, bitte schauen Sie – user782104

Antwort

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

Wäre es eine Idee, den Hoverstate regelmäßig zu überprüfen?

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

$(document).ready(chkhover); 

dieses jsfiddle See. Es zeigt übrigens auch eine css-only-Lösung.

Verwandte Themen