Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z działaniem funkcji w pętli [JS]
Tasilvar
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.12.2009
Skąd: Pyrzyce

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


Witam. W celu uproszczenia sobie kodu posłużyłem się pętelką for odwołując się wcześniej do powyższych tablic. Funkcją alert sprawdzałem jej poprawność po wyrzuceniu linijki z deklaracją funkcji i pętla działała poprawnie, jednak w moim zamierzeniu konieczna jest obecność tej funkcji.

oto fragment kodu:
  1.  
  2. var test_1 = document.getElementById('block_test');
  3.  
  4. // zmienne
  5.  
  6. var color_black = document.getElementById('black');
  7. var color_white = document.getElementById('white');
  8. var color_red = document.getElementById('red');
  9. var color_blue = document.getElementById('blue');
  10. var color_yellow = document.getElementById('yellow');
  11. var color_green = document.getElementById('green');
  12.  
  13.  
  14. // tablice
  15.  
  16. var color_tab = new Array("black","white","red","blue","yellow","green");
  17.  
  18. var colors_css = new Array("#000000","#fffffff","#c6010a","#3331d2","#fbcc04","#286843");
  19.  
  20. for(var i=0;i<=color_tab.length-1;i++) {
  21.  
  22. color_tab[i].onclick = color_tab[i];
  23.  
  24. function color_tab[i] () { // jeżeli to wywale pętla się wykona
  25.  
  26. test_1.style.background = colors_css[i];
  27.  
  28. alert("wykonane");
  29. }// // jeżeli to wywale pętla się wykona
  30.  
  31. }


Pytanie z mojej strony, jaki błąd popelniłem przy twrzoeniu funkcji w pętli z wykorzystaniem indeksów tablicy?
Czekam na odp.

Ten post edytował Tasilvar 30.04.2011, 08:42:23
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Funkcje nie mogą być tablicami.
Napisz może słownie co kombinujesz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tasilvar
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.12.2009
Skąd: Pyrzyce

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


Generalnie to chciałem sobie uprościć kod, zamiast
  1. // paleta kolorów
  2. //
  3.  
  4. var test_1 = document.getElementById('block_test');
  5.  
  6. var color_black = document.getElementById('black');
  7. var color_white = document.getElementById('white');
  8. var color_red = document.getElementById('red');
  9. var color_blue = document.getElementById('blue');
  10. var color_yellow = document.getElementById('yellow');
  11. var color_green = document.getElementById('green');
  12.  
  13. color_black.onclick = black;
  14. color_white.onclick = white;
  15. color_red.onclick = red;
  16. color_blue.onclick = blue;
  17. color_yellow.onclick = yellow;
  18. color_green.onclick = green;
  19.  
  20. function black() {
  21. test_1.style.background = "#000000" ;
  22. }
  23. function white() {
  24. test_1.style.background = "#ffffff" ;
  25. }
  26. function red() {
  27. test_1.style.background = "#c6010a" ;
  28. }
  29. function blue() {
  30. test_1.style.background = "#3331d2" ;
  31. }
  32. function yellow() {
  33. test_1.style.background = "#fbcc04" ;
  34. }
  35. function green() {
  36. test_1.style.background = "#286843" ;
  37. }



chciałem stworzyć petlę która by pobierała kolejne indeky z tablicy i przypisywała im kolory które byłyby w tablicy. Chciałem też aby pętla sama tworzyła zmienną pobierając tylko do nazwy na która składałaby się stała "color_" przyrostek wartości indeksu tablicy (jednak tu także brak efektu).

Ten post edytował Tasilvar 30.04.2011, 10:06:08
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przy dołączonym jQuery:
Zakładam że te black, green. to są divy

  1. <div class="color" id="black" color="#000000"></div>
  2. <div class="color" id="whie" color="#ffffff"></div>

Kod
jQuery('.color').click(function(){
jQuery('#block_test').css('background-color',jQuery(this).attr('color'));
});

I już. Pisane z palca więc mogą być drobne błędy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tasilvar
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.12.2009
Skąd: Pyrzyce

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


zgadza się, a czy nie będe musiał powtarzać tego kodu przy każdy inny kolorze? btw. przy jQuery się jeszcze nie bawiłem.

Ten post edytował Tasilvar 30.04.2011, 10:14:05
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No a czy ja tu jakiś kod powtórzyłem? Funkcja leci po klasie 'color'. Jedyne co musisz pamiętać by dla divów nadawać klasę 'color' oraz atrybut color. Reszta pójdzie automatycznie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 21.08.2025 - 03:51