Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] wykonanie funkcji po 3 sekundach
Forum PHP.pl > Forum > Przedszkole
puz219
Witam.

Chciałbym zrobić coś takiego w js, żeby funkcja wykonywała się dopiero po 3 sekundach od wywołania,a le nie mam zielonego pojęcia, jak coś takiego osiągnąć, naturalnie jeśli to możliwe.

Mam na stronie link, po najechaniu na którego wyświetla mi się zawartość diva i teraz próbuje zrobić, tak, żeby zawartość diva znikała po 3 sekundach od momentu, w którym link przestaje być aktywny.

mam coś takiego:

  1. <a href="#" onmouseover="zawartosc('show')" onmouseout="zawartosc('hide')">zawartosc</a>
  2. <div id="zawartosc" style="display:none;">
  3. jakis tam tekst
  4. </div>


a teraz funkcja zawartosc()
  1. funtion zawartosc(a) {
  2. if (a == 'show') {
  3. document.getElementById('zawartosc').style.display = 'block';
  4. }
  5. else if(a == 'hide') {
  6. document.getElementById('zawartosc').style.display = 'none';
  7. }
  8. }


Proszę o jakieś wskazówki, jak coś takiego zrobić, żeby przy onmoueout wykonanie funkcji zawartosc('hide) nastąpiło dopiero po 3 sekundach.

Pozdrawiam.
pest
Jest w JS funkcja setTimeout ( no i jeszcze np. clearTimeout).

Ogólnie w google dobrze jest to przedstawione, ale nie mam fazy na swoją robotę, to napiszę tobie coś winksmiley.jpg.
  1. <a href="#" onmouseover="zawartosc('show'); clearTimeout(tim);" onmouseout="tim = setTimeout( 'zawartosc('hide');', 3000);">zawartosc</a>


Ale sprawdź jeszcze, bo sam nie sprawdzałem działania tego kodu.
puz219
niestety nie działa, pokazuje się, ale potem nie chce się już ukryć
pest
To dodaj jeszcze przed deklaracją funkcji (albo gdziekolwiek indziej w kodzie js) linijkę:
var tim;


U mnie zadziałało, wcześniej się sadziło do niezainicjowanej zmiennej.
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.