Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MooTools] Wywołanie funkcji klasy w klasie
Forum PHP.pl > Forum > Przedszkole
Loczek
Witam,
mam problem z Mootools i gryzę się z nim już kilka godzin. Mianowicie mam klasę:

[JAVASCRIPT] pobierz, plaintext
  1. var test= new Class({
  2. initialize: function(_image, _images, _sizes){
  3. },
  4.  
  5. funct1: function(){
  6. },
  7.  
  8. funct2: function(){
  9. funct1();
  10. }
  11. });
[JAVASCRIPT] pobierz, plaintext

Problem polega na tym, że mam błąd funct1 is not a function. Próbowałem this., super., parent. i nic... sad.gif W jaki sposób wywołać funkcję z tej samej klasy ? Dodatkowo mam jeszcze pytanie jak się tworzy pola klasy ? Czy realizuje się to implementując opitions?
skowron-line
http://jsfiddle.net/7QNF4/
Loczek
U mnie dalej to samo:
this.showNext is not a function
[Wstrzymuj na tym błędzie] this.showNext();


Mam coś takiego:
[JAVASCRIPT] pobierz, plaintext
  1. // funkcja zmieniajaca na nastepne zdjecie
  2. showNext: function(){
  3. // zmiana zanzaczenia
  4. $('p' + this.activeImage).set('class', 'pNoSelect');
  5. this.activeImage++;
  6. if(this.activeImage == this.images.length+1){ this.activeImage = 1; }
  7. $('p' + this.activeImage).set('class', 'pSelect');
  8.  
  9. // podmiana obrazka
  10. var imgageHandlerTmp = this.imgHandler;
  11. var imagesTmp = this.images;
  12. var sizesTmp = this.sizes;
  13. var activeImgTmp = this.activeImage-1;
  14.  
  15. var myFx = new Fx.Tween(imgageHandlerTmp);
  16. myFx.start('opacity', .0).chain(function(){
  17. imgageHandlerTmp.set('src', imagesTmp[activeImgTmp]);
  18. this.start('height', sizesTmp[activeImgTmp]).chain(function(){
  19. this.start('opacity', 1);
  20. });
  21. });
  22. },
  23.  
  24.  
  25. // przewijanie
  26. playNext: function(){
  27. this.showNext();
  28. },
[JAVASCRIPT] pobierz, plaintext

A wywołuje to tak:
[JAVASCRIPT] pobierz, plaintext
  1. var sc = new showCase("imageObject", "'.$imagesString.'", "'.$sizeString.'");';
  2. var periodical = sc.playNext.periodical(5000);
[JAVASCRIPT] pobierz, plaintext
skowron-line
Za komentuj sobie całe ciało funkcji i później linijka po linijce odkomentuj i zobaczysz w której linii masz błąd.
Loczek
Wychodzi na to, że ciało klasy jest ok. Ale jeżeli zamienię:
[JAVASCRIPT] pobierz, plaintext
  1. var periodical = sc.playNext.periodical(5000);
[JAVASCRIPT] pobierz, plaintext

na

[JAVASCRIPT] pobierz, plaintext
  1. var periodical = sc.playNext();
[JAVASCRIPT] pobierz, plaintext

To działa, więc błąd musi być w wywołaniu cyklic zny... W jaki sposób to zrobić ?
Loczek
Szkoda, że nie napisałeś jak to ma być bo straciłem masę czasu... Dopiero teraz doszedłem jak to ma być:
[JAVASCRIPT] pobierz, plaintext
  1. var periodicalID = sc.playNext.periodical(10000, sc);
[JAVASCRIPT] pobierz, plaintext

Co do 2 części mojego pytania, jak to jest z tymi polami klasy ?
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.