Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript]Prosty Stoper (ćwiczenie)
Forum PHP.pl > Forum > Przedszkole
Falling Blind
Witam. W ramach nauki JS postanowiłem napisać sobie prosty stoper. Doszedłem do takiej postaci a moim problemem jest, że mimo napisanej funkcji, która ma zmieniać styl diva "timebox" na "visible" po kliknięciu na przycisk, nie działa ona. Może coś przeoczyłem? Dopiero się uczę więc to bardzo możliwe.


EDIT: Przepraszam i poprawiam się. Zamiast kodu wstawiam link:
http://jsbin.com/uqomoj/2/watch

Czy to niedziałający onclick, czy moja funkcja kuleje?
lobopol
link nie działa
Falling Blind
Ehhh... zauważyłem... jest jakaś inna stronka do wrzucania kodu?

EDIT: Już mam działający link:
http://jsfiddle.net/kTSZw/
Tuminure
Poprawiony kod:
http://jsfiddle.net/kTSZw/2/

Na jsfiddle takie coś nie zadziała z ustawieniem Frameworks & Extension na onLoad.
  1. <button id="click" onclick="visibility()">


Przypisujesz (nieistniejącą) zmienną visible, do stylu elementu timebox. Chodziło o zapewne o string "visible"
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById('timebox').style.visibility = visible;
[JAVASCRIPT] pobierz, plaintext


Już przy załadowaniu skryptu uruchamiasz funkcję count, zamiast uruchamiać ją dopiero, po kliknięciu start. W dodatku uruchamiasz ją przed jej definicją.
[JAVASCRIPT] pobierz, plaintext
  1. setInterval("count()", 10);
[JAVASCRIPT] pobierz, plaintext


Resztę zmian myślę, że wywnioskujesz sam, doszukasz w google lub dopytasz.
Falling Blind
Próbowałem zrobić coś takiego:
[JAVASCRIPT] pobierz, plaintext
  1. window.onload = function()
  2. {
  3. document.getElementById('click').onclick= count();
  4. document.getElementById('click').onclick = setInterval(count(), 10);
  5. }
[JAVASCRIPT] pobierz, plaintext

Ale funkcja count() tak czy siak uruchamiała się jeszcze zanim kliknałem przycisk start.
Tuminure
Zmienna onclick to zmienna, jak każda inna. Nie można przypisać jej kilku wartości i liczyć, że wszystkie zostaną zapamiętane.
W dodatku po prawej stronie od znaku równości masz funkcje. W takim wypadku, do zmiennej zostaje wprowadzony wynik funkcji.

Twój kod działa mniej więcej podobnie do tego:
http://jsfiddle.net/c7JHA/

Swoją drogą setInterval uruchamia funkcję co określony czas. Nie trzeba jej uruchamiać wcześniej.
Falling Blind
Wiem że setInterval uruchamia funkcję automatyczxnie. ale chciałem żeby ta funkcja zaczęła się powtarzać dopier po kliknięciu start a nie już przed. I dzieki za wyjaśnienie sprawy z onclick smile.gif Wynika z tego że trzeba korzystać z wielu innych sposobów a nie tylko onclick tak? są jakieś typowe zastępcze sposoby czy trzeba kombinować?
Tuminure
Zależy co masz na myśli przez "kombinować".

Zazwyczaj nic nie stoi na przeszkodzie, by stworzyć dodatkową funkcję, która będzie uruchamiała wymagany kod (jak to zrobiłem w kodzie, w pierwszej odpowiedzi)

Tutaj opisane na troszkę prostszym przykładzie + jeszcze sposób z jQuery
http://jsfiddle.net/eBb3X/
Falling Blind
Pisząc kombinować miałęm właśnie na myśli pisanie prostych funkcji 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.