Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Opóźnienie funkcji po najechaniu na element
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
radziopoke
Potrzebowałbym zrobić coś takiego, że jak najadę na element, to funkcja która jest za to odpowiedzialna wykona się np po sekundzie pod warunkiem, że mysz nadal znajduje się na tym elemencie. Chwilowo mam tylko, że wykonuje się od razu po najechaniu a to jest trochę za szybko bo ktoś może tylko szybko "przelecieć" po obiekcie i zdążyć myszkę zdjąć przed upływem odpowiedniego czasu z tego obiektu. Wtedy funkcja nie powinna się wykonać.

korzystam z jquery i mam tylko to:
  1. $("body").delegate('div','mouseover', function(){
  2. //tutaj powinien być jeszcze możliwość sprawdzenia czy po odpowiednim czasie myszka nadal znajduje się nad elementem
  3. }


Podałem tylko tyle gdyż oprócz tego mam i tak tylko schemat html złożony z div-ów.
jak zrobić takie opóźnienie?
kamil4u
Robisz to za pomocą flagi i funkcji setTimeout i clearTimeout.

Pseudokod - nie do końca poprawny. Sam pomyśl co zmienić - to ma przedstawić jedynie idee:
Kod
flaga = false;

element.zdarzenieNajechania = function(){
flaga = true;
opoznienie = setTimeout(function(){
   if( flaga == true ){
     //wykonaj
   }
}, 3000)
}

element.zdarzenieZjechaniaMyszki = function(){
flaga = false;
// ew. usunąć zwłokę
}
radziopoke
dzięki jakąś nie wpadłem na to by sprawdzić czy myszka zjechała z obiektu smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.