Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Dlaczego onclick przestaje działać
Forum PHP.pl > Forum > Przedszkole
stefan33
Witam oto fragment kodu z mojego skryptu:

  1.  
  2. destElement.innerHTML="<div id='memesDiv' style='width: 500px; border: 1px solid green; background-color: blue;'></div>";
  3. var memesDiv=destElement.firstChild;
  4.  
  5.  
  6. for(i=0;i<memeImages.length;i++)
  7. {
  8. (function(i)
  9. {
  10. ...
  11. img.onclick=function(){alert("lol"+memeImages[i]); }
  12. memesDiv.appendChild(img);
  13. ...
  14. }
  15. )(i);
  16. }
  17.  

do tego momentu ten kod działa. natomiast gdy próbuje cokolwiek dodać do diva 'destElement' to onclick na podanych img przestaje dzialac. siedze juz na tym od 2 godzin i nie mam pojecia co moze być nie tak. nawet wpisanie takiego czegoś powoduje ze onclick przestaje dzialac:
  1. destElement.innerHTML=destElement.innerHTML;

W czym tkwi problem? Z góry dziekuje za wszystkie odpowiedzi i pomoc
peter13135
Być może gdybyś spakował mi cały kod, to go odpalę i znajdę problem tongue.gif
Kużdo
Jeżeli do tego diva dodajesz obrazki PO WCZYTANIU STRONY, czyli właśnie za pomocą JS albo ajaxa, to nie działa prawdopodobnie dlatego, że w drzewie DOM nie istnieją te elementy i nie ma do nich niczego przypisanego.
stefan33
Cytat(peter13135 @ 1.09.2012, 15:20:59 ) *
Być może gdybyś spakował mi cały kod, to go odpalę i znajdę problem tongue.gif

Ciezko byloby spakowac, bo to nie kawalek kodu, a kod do aktualizacji strony, duzo includow php itd. zreszta i tak nie chce zawracac glowy tongue.gif Zastanawiam sie w jaki sposob dziala to przypisanie poprzez onclick i inne eventy. Bo np. jak dodaje sie
  1. element.style.top=10px
to js zywcem dopisuje tzn robi takie cos:
  1. <element style='top: 10px'/>
, a gdy uzywa sie np. onclick to w tagu nic nie ma. Dlatego byćmoze jak przypisuje
  1. destElement.innerHTML=destElement.innerHTML;
to przypisanie do onclicka jest "zgubione" tylko pytanie w jaki sposób w takim razie wcześniej było przypisane.. oneeyedsmiley02.png


Cytat(Kużdo @ 1.09.2012, 15:44:57 ) *
Jeżeli do tego diva dodajesz obrazki PO WCZYTANIU STRONY, czyli właśnie za pomocą JS albo ajaxa, to nie działa prawdopodobnie dlatego, że w drzewie DOM nie istnieją te elementy i nie ma do nich niczego przypisanego.

Drzewo po wczytaniu strony dalej jest uaktualniane, to nie ma nic do rzeczy 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.