Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][JavaScript]Prosty Stoper (ćwiczenie)
Falling Blind
post 20.07.2013, 09:41:04
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.07.2013

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Falling Blind 20.07.2013, 08:43:09
Go to the top of the page
+Quote Post
lobopol
post 20.07.2013, 10:28:57
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


link nie działa


--------------------
Go to the top of the page
+Quote Post
Falling Blind
post 20.07.2013, 11:25:44
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.07.2013

Ostrzeżenie: (0%)
-----


Ehhh... zauważyłem... jest jakaś inna stronka do wrzucania kodu?

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

Ten post edytował Falling Blind 20.07.2013, 11:34:04
Go to the top of the page
+Quote Post
Tuminure
post 20.07.2013, 12:24:57
Post #4





Grupa: Zarejestrowani
Postów: 178
Pomógł: 49
Dołączył: 16.04.2012
Skąd: Bytom

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Falling Blind
post 20.07.2013, 12:36:34
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.07.2013

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Falling Blind 20.07.2013, 12:40:16
Go to the top of the page
+Quote Post
Tuminure
post 20.07.2013, 12:55:40
Post #6





Grupa: Zarejestrowani
Postów: 178
Pomógł: 49
Dołączył: 16.04.2012
Skąd: Bytom

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Tuminure 20.07.2013, 12:56:56
Go to the top of the page
+Quote Post
Falling Blind
post 20.07.2013, 13:18:36
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.07.2013

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
Tuminure
post 20.07.2013, 13:40:37
Post #8





Grupa: Zarejestrowani
Postów: 178
Pomógł: 49
Dołączył: 16.04.2012
Skąd: Bytom

Ostrzeżenie: (0%)
-----


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/
Go to the top of the page
+Quote Post
Falling Blind
post 20.07.2013, 13:41:45
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 19.07.2013

Ostrzeżenie: (0%)
-----


Pisząc kombinować miałęm właśnie na myśli pisanie prostych funkcji smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 01:52