Tworzę witrynę, w której umieścisz mysz nad obrazem i pokazuje element (w tym przypadku, zwiększając jego wysokość od 0 do 154 pikseli).Spust za pomocą myszki i myszy za każdym razem, gdy poruszam myszą wewnątrz danego elementu
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);
});
});
Zawartość rozszerza się, gdy mysz wchodzi i zapada się, gdy liście mysz, ale za każdym razem, kiedy mysz jest przesuwana ciągu element treści można rozwijać i zwijać, aż mysz opuszcza element.
Nigdy wcześniej nie miałem tego problemu, a ja używałem tych funkcji w przeszłości, więc nie mam pojęcia, co się dzieje. Jakieś pomysły?
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);
});
});
Jestem teraz używając powyższy kod i wciąż się dokładnie ten sam problem. Próbowałem wszystkich odmian funkcji .stop (false, false) (false, true) (true, false) (true, true). Problem występuje z każdym z nich inaczej, ale nadal występuje.
ULTIMATE EDIT:
Problem polegał na tym, że zawartość że mysz podeszła została pokryta przez różnej zawartości, gdy funkcja została wywołana. Dlatego w dowolnym punkcie mysz jednocześnie wchodziła i wychodziła z obrazu. Rozwiązano problem, przenosząc wywołanie funkcji do innego elementu.
Dzieje się tak dlatego, że '' mouseout' i bańka mouseover' zdarzenia do rodziców, więc gdy po najechaniu na element potomny '.dropimage', jego' 'mouseout' i bańki mouseover' Events up to' .dropimage'. Użycie 'mouseleave' i' mouseenter' zamiast tego rozwiąże problem. Po naprawieniu tego problemu zobaczysz, że musisz wywołać '.stop (true, true)' before '.animate() ', aby zatrzymać poprzednie animacje w przypadku szybkiego szybkiego i szybkiego przewijania. –
Zaktualizowałem kod, ale problem nadal występuje. – bcloutier
może twoje powiązanie zdarzenia z obrazem i elementem? zamiast tylko obrazu? – Mouseroot