2013-03-05 9 views
6

Sprawdź to fiddle out: http://jsfiddle.net/abitdodgy/7rFb6/1/Każdy pomysł, dlaczego zdarzenie mouseleave nie jest rejestrowane podczas szybkiego przesuwania kursora?

Po przesunięciu kursora szybko zdarzenie mouseleave nie rejestruje w czasie. Dlaczego to się dzieje?

Po najechaniu kursorem na wybrany obraz pojawia się warstwa .controls, która umożliwia usunięcie zaznaczenia. Jednak po usunięciu warstwa .controls powinna zniknąć. Nie zawsze tak się dzieje, gdy kursor porusza się naprawdę szybko między warstwami.

Spróbuj wybrać zdjęcia i szybko przesuń kursor między nimi, a zauważysz, że tak się dzieje. Jeśli obraz jest zaznaczony, warstwa .controls nie powinna być widoczna, chyba że najedziesz na niego kursorem.

Wszelkie pomysły?

Odpowiedz

3

Spróbuj powiązać zdarzenie mouseleave z opakowaniem div, a nie z pojedynczym elementem, ponieważ nie jest ono zawieszane w wyzwalaczu .

Czy dla ciebie pracuje this sample?

Proponuję również dodać z-index: 2; do elementów .

+0

Ten link jest niedostępny ... – LinusGeffarth

1

SZYBKO przeniosłem moją laserową mysz nad wszystkie z nich i NATYCHMIAST zareagowali. Wydaje się, że problem jest związany z ograniczeniami twojego sprzętu, a nie z jakimś konkretnym problemem z oprogramowaniem, który przykro mi mówić.

+0

Czy jesteś pewien? Sprawdź to: http://stackoverflow.com/questions/7331731/jquery-mouseleave-not-fired-on-container-when-moving-cursor-fast - Wygląda na to, że nie jestem jedyny, chociaż to robi nie wyjaśnić dlaczego. Używam MacBook Pro Retina i dzieje się to w Chrome i Safari. – dee

+0

OK, aby upewnić się, że przetestowałem go w Firefoksie 19.0, Google Chrome 25.0.1364.152 i Safari 6.0.2 (8536.26.17) na skrzypcach drugiej osoby i nie mógł odtworzyć problemu. –

+0

To dziwne. Mogę odtworzyć także inne wydania dla facetów. Hmm ok. Dzięki. Zamierzam pozwolić temu płynąć przez jakiś czas przed podjęciem decyzji! Sprawdź, czy ktoś inny może mieć jakieś dane wejściowe. – dee

Powiązane problemy