Ten problem z Jquery od pewnego czasu mnie dręczy. Opracowałem skrypt z wykrywaniem jednej funkcji, gdy mysz opuszcza górną część strony. Oto kod:Wykryj kiedy mysz opuszcza górną stronę jquery
$(document).bind("mouseleave", function(e)
{
console.log(e.pageY);
if (e.pageY <= 1)
{
now = new Date();
for (i=0; i < times.length; i++)
{
if (now.getTime() > times[i][0] && now.getTime() < times[i][1])
{
$.fn.colorbox({iframe:true, width:650, height:600, href: "work.html", open: true});
}
}
}
});
Działa to idealnie dla mnie we wszystkich przeglądarkach. Z jakiegoś powodu działa on losowo w Chrome i najwyraźniej nie jest w ogóle w Firefoksie dla znajomego, który testował witrynę. W mojej przeglądarce (firefox 3.5.3), e.pageY jest zalogowany w konsoli jako liczba blisko 0, jednak w mojej przeglądarce znajomych (także firefox 3.5.3) najniższa wartość to około 240. Nie mam pojęcia, dlaczego to dzieje się przy identycznych przeglądarkach. Czy ktokolwiek ma jakąś wskazówkę, jak to debugować, lub inną bardziej niezawodną metodę wykrywania, kiedy mysz wychodzi z góry strony? Mam nadzieję, że to ma sens.
Czy próbowałeś przesuwając mysz naprawdę szybkie? Zdarzenia czasami nie uruchamiają się, jeśli mysz porusza się szybko. – vava
Jeśli poruszasz się bardzo szybko, rejestruje on większość czasu (to nie jest problem). Jednak do testowania mysz porusza się niezwykle powoli. – Lobe
@vava, mówię tylko, że może twój przyjaciel ma wolniejszą maszynę/większy ekran i porusza myszą szybko. To może być przyczyna różnicy. – vava