Ich erstelle eine Website, wo Sie die Maus über ein Bild bewegen und es zeigt ein Element (in diesem Fall durch seine Höhe von 0 bis 154px).Mouseover und mouselave trigger jedes Mal, wenn ich die Maus innerhalb des angegebenen Elements bewegen
jQuery(document).ready(function(){
jQuery("#dropdown-menu-create .dropimage").mouseover(function(){
jQuery("#dropdown-menu-create .toggle").animate({height:"154px"},200);
});
jQuery("#dropdown-menu-create .dropimage").mouseout(function(){
jQuery("#dropdown-menu-create .toggle").animate({height:"0"},200);
});
});
Der Inhalt erweitert, wenn die Maus eintritt und bricht zusammen, wenn die Maus Blätter, aber jedes Mal, wenn die Maus innerhalb das Element der Inhalt expandiert und kollabiert so oft, bis die Maus verlässt das Element bewegt.
Ich hatte dieses Problem nie zuvor, und ich habe diese Funktionen in der Vergangenheit verwendet, so dass ich ratlos bin, was vor sich geht. Irgendwelche Ideen?
Edit:
jQuery(document).ready(function(){
jQuery("#dropdown-menu-create .dropimage").mouseenter(function(){
jQuery("#dropdown-menu-create .toggle").stop(true,true).animate({height:"154px"},200);
});
jQuery("#dropdown-menu-create .dropimage").mouseleave(function(){
jQuery("#dropdown-menu-create .toggle").stop(true,true).animate({height:"0"},200);
});
});
ich jetzt mit dem Code oben und immer noch genau das gleiche Problem bekommen. Ich habe alle Variationen der .stop-Funktion ausprobiert (falsch, falsch) (falsch, wahr) (wahr, falsch) (wahr, wahr). Das Problem tritt bei jedem Problem anders auf, tritt jedoch immer noch auf.
ULTIMATE EDIT:
Das Problem war, dass der Inhalt, der die Maus ging durch unterschiedliche Inhalte verdeckt, wenn die Funktion aufgerufen wurde. Daher trat die Maus an jedem beliebigen Punkt gleichzeitig in das Bild ein und verließ es. Das Problem wurde gelöst, indem der Funktionsaufruf an ein anderes Element verschoben wurde.
Dies geschieht, weil die 'mouseout' und' mouseover' Ereignisse Blase bis zu Eltern, so dass, wenn Sie über ein untergeordnetes Element von 'schweben .dropimage', seine' mouseout' und 'mouseover' Ereignisse Blase bis zu' .dropimage'. Verwenden Sie stattdessen 'mouseleave' und' mouseenter', um das Problem zu beheben. Sobald dieses Problem behoben ist, müssen Sie '.stop (true, true)' vor 'aufrufen.animate() 'um vorherige Animationen zu stoppen, wenn Sie mehrmals schnell den Mauszeiger darüber bewegen. –
Ich habe den Code aktualisiert, aber das Problem besteht immer noch. – bcloutier
Vielleicht binden Sie das Ereignis an das Bild und das Element? anstatt nur das Bild? – Mouseroot