Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]własne wydarzenia
Forum PHP.pl > Forum > Przedszkole
Gość
na samym początku mam pytanie:
czy własne wydarzenia wykonują się dynamiczne, tzn. jeśli zrobię wydarzenie które posiada warunek porównujący dwie wartości i on się spełni, to instrukcje dalsze zostaną od razu wykonane? jeśli nie, to da się to w jakiś sposób osiągnąć?

czy taki kod jest poprawny i zadziała tak, jak wspomniałem wyżej?
[JAVASCRIPT] pobierz, plaintext
  1. document.addEventListener('Test', function(todo) {
  2. if(WARUNEK) todo;
  3. }, false);
[JAVASCRIPT] pobierz, plaintext

jeśli nie, to co zmienić/dodać, aby zadziałał?


a takie wywołanie tego zdarzenia będzie poprawne?
[JAVASCRIPT] pobierz, plaintext
  1. document.onTest = alert('dziala');
[JAVASCRIPT] pobierz, plaintext


zrobiłem coś podobnego, alert pojawiał się przy wczytywaniu strony, pomimo, że warunek nie był spełniony. a kiedy się spełnił - nic się nie działo.
impro
chodzi o to aby coś wywołało tą funkcje np windowsOnLoad czy jakoś tak albo click albo zmiana pola formularza jest też taki wzorzec observer który taktuje na temat ten i obserwuje czy coś nie zmieniło się.
erix
[JAVASCRIPT] pobierz, plaintext
  1. document.onTest = function(){ alert('dziala'); }
[JAVASCRIPT] pobierz, plaintext
Gość
  1. <script type="text/javascript">

[JAVASCRIPT] pobierz, plaintext
  1. document.addEventListener.('Test', function(todo){
  2. var test = document.getElementById('test').innerHTML;
  3. if(test > 200) todo;
  4. }, false);
  5. document.onTest = function(){ alert('dziala'); }
  6.  
  7. function dodaj(){
  8. document.getElementById('test').innerHTML = 201;
  9. }
  10. setTimeout("dodaj()", 5000);
[JAVASCRIPT] pobierz, plaintext

  1. <span id="test">200</span>


po 5 sekundach funkcja dodaj() powinna zmienić wartość id "test" na 201, a wtedy uruchomiłaby się funkcja ze zdarzenia. niestety, nic się nie dzieje. proszę, powiedzcie, gdzie tutaj jest błąd?
erix
Sprawdź sobie, gdzie masz literówkę. To raz.

Dwa - konsola błędów przeglądarki jest Twoim najlepszym przyjacielem.
Gość
pierwsza linia poprawiona. teraz normalnie po 5 sekundach zmienia się 200 na 201 w <span>, ale alert i tak się nie pojawia.
erix
Pokaż gdzieś na żywo cały kod.
Gość
to jest cały kod, a odpalam go na localhoście
kamil4u
Nie da się smile.gif

Powinieneś użyć setInterval i sprawdzać co jakiś czas czy wartość się zmieniła.
W nowszych przeglądarkach dodano odpowiednie zdarzenia sprawdzające czy DOM się zmienił( np. DOMSubtreeModified i inne) - za ich pomocą możesz stworzyć mniej więcej taki kod:
Kod
if( obsługa_nowego_zdarzenia )
//operacje
else
//setInterval
erix
Cytat
to jest cały kod,

Czytaj przyklejone wątki: Temat: JavaScript jesli Twoj watek go dotyczy KONIECZNIE przeczytaj
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.