Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Brak reakcji na kod
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
maxis88
witam. moja "strona" do testowania kodu ( uczę się JS z książki ) wygląda tak :
  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  2. <script type="text/javascript" language="JavaScript">
  3.  
  4. function ok(){
  5.  
  6. alert("Witaj!");
  7. }
  8. document.onMouseDown=ok;
  9. </head>
  10. <p id="link" >Tekst</p>
  11. <b>Tekst 2</b>
  12. </body>
  13. </html>


nie chodzi tu o jakieś skomplikowane rzeczy ale o to, że wg książki powyższy kod powinien działać a nie działa ;P nie wiem co robię źle... czy zapisałem coś z błędem czy może to się używa inaczej ?
markonix
Zmień onMouseDown na onmousedown.
maxis88
http://worldofwarriors.cba.pl/test.html
m_ikolaj
Witaj,


Znajdz linię 10 i zamień

  1. document.onMouseDown=ok;


na

  1. document.onMouseDown=ok();
maxis88
ok działa. Napisz mi jak mozesz, dlaczego czasem używa się bez nawiasów a czasem z ? Spotkałem kilka przykładów w necie i właśnie tam widziałem, że używa sie bez nawiasow i może to mnie zmyliło ?
m_ikolaj
z nawiasami to jest wywołanie funkcji w twoim przypadku ok(), ale nie spotkałem się bez nawiasów jeżeli chodzi o funkcję smile.gif
markonix
Bez nawiasu też zadziała.
maxis88
jest jeszcze jeden problem..
onMouseDown jak sama nazwa wskazuje powinno zadziałać gdy naciśniemy klawisz myszy... komunikat alert pokazuje mi sie jednak przy każdym odświeżeniu strony ... a pozniej przy wcisnieciu juz nie ;P
kamil4u
Już dali Ci prawidłową odpowiedź, a dokładnie: ~markonix.

Za to inni, źle mówili...
Gdy przypisujesz zdarzenie nie używasz nawiasu( przynajmniej na Twoim poziomie - zawsze ).
Chodzi o to, że nawiasy wywołują funkcję, a Ty nie chcesz jej wywołać tylko przypisać referencję(ważne słowo w JS) do danej funkcji do zdarzenia.

Jak nadal nie rozumiesz o co chodzi to napisz, to wytłumaczę dokładniej.

Jeżeli nadal masz z czymś problem użyj tego: http://jsfiddle.net/ i napisz co chcesz osiągnąć, dając nam odpowiedni link do kodu.
maxis88
czego chce to dużo powiedziane bo sie ucze i chcę , żeby to co robię działało haha.gif
poniższy kod wg mnie powinien działać tak, że jak kliknę na tekst w akapicie wyświetli mi się alert - nie jest mi to do niczego potrzebne a chce jedynie sprawdzać moja wiedzę i zobaczyc co jak działa...
  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  2. <script type="text/javascript" language="JavaScript">
  3.  
  4. function ok(){
  5.  
  6. alert("Witaj!");
  7. }
  8. var obj=document.getElementById("link"); // w teorii zaznaczam element ktory mnie interesuje
  9. obj.onMouseDown=ok(); // przypisuję wywołanie funkcji do tego elementu po nacisnięciu PPM
  10.  
  11. </head>
  12. <p id="link">Tekst</p> // linijka ktora ma uruchomić kod JS
  13. <b>Tekst 2</b>
  14. </body>
  15. </html>


i wszystko dziala procz faktu że nie w tym momencie ktorego oczekiwałem smile.gif-> tylko przy odświeżaniu strony
kamil4u
W ogóle nie czytasz co do Ciebie piszą inni. Jeżeli nie będziesz brał pod uwagę tego co do Ciebie piszemy to myślę, że Twoje dalsze pytania nie mają sensu!

Po kolei...:
- 'onMouseDown' -> już na ten temat pisałem...
- '=ok()' -> o tym też... co robią te nawiasy... - niestety, ale ~m_ikolaj napisał źle( nie ma racji )...
- teraz coś o czym pewnie nie wiedziałeś... poczytaj co to jest DOM i dlaczego musi się najpierw załadować, abyś mógł wykonywać na nim operacje: http://kurs.browsehappy.pl/Definicja/DOM i http://kurs.browsehappy.pl/JavaScript/DOM (na razie mają jakiś problem... zajrzyj tam za jakiś czas i poczytaj )

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  4. <script type="text/javascript" language="JavaScript">
  5.  
  6. function ok(){
  7.  
  8. alert("Witaj!");
  9. }
  10.  
  11. onload = function(){
  12. var obj=document.getElementById("link");
  13. obj.onmousedown=ok;
  14. }
  15. </script>
  16. </head>
  17. <body>
  18. <p id="link">Tekst</p> // linijka ktora ma uruchomić kod JS
  19. <b>Tekst 2</b>
  20. </body>
  21. </html>

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.