JQuery Mouseover Mouseout -Menü mit SetTimeout
-
03-10-2019 - |
Frage
Kann mir jemand mit diesem einfachen Code helfen? Ich bin immer noch ein Noob auf JS und ich weiß nicht, was ich falsch mache. Grundsätzlich versuche ich, ein Mausover -Menü zu erstellen.
function showQuickLinks() {
//show the menu
}
function hideQuickLinks() {
//hides the menu
}
//button mouseover
$("#quick-links-dd").mouseover(function() {
showQuickLinks();
});
var mnuTimeout;
//clears timeout when it rolls over the button
$("#quick-links-dd").mouseover(function () {
clearTimeout(mnuTimeout);
})
//$("#quick-links) - quick links container
//hides the menu when the mouse is not over the container
$("#quick-links").mouseout(function () {
mnuTimeout = setTimeout("hideQuickLinks()",1000);
});
Die Maus über funktioniert, aber sie führt den Code nicht aus, wenn sich die Maus außerhalb des Link -Containers befindet.
Lösung
var mnuTimeout = null;
$(function() {
$("#quick-links-dd").hover() {
clearTimeout(mnuTimeout);
showQuickLinks();
}, function() {
mnuTimeout = setTimeout(hideQuickLinks,1000);
});
});
Andere Tipps
Fehlt dir ein "?
("#quick-links").mouseout(function () {
mnuTimeout = setTimeout("hideQuickLinks()",1000);
});
Ich hatte zeitweise Probleme mit verlorenen Onmouseout -Ereignissen. Meine spätere Lösung bestand darin, Mausover -Events zu den umliegenden Elementen hinzuzufügen und sie auch das Popup abzubrechen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow