Elementy tablicy jako parametry funkcji

0

Jest to fragment prostej funkcji. Kiedy w funkcji flipback, jako argumenty dawałem elementy tablicy, to funkcja nie działała (parametry undifined), lecz wystarczyło stworzyć zmienne pod które przypisałem wartości tych dwóch elementów tablicy i wszystko działa. Nie wiem dlaczego i prosiłbym o wytłumaczenie lub podanie konkretnego źródła, gdzie mógłbym o tym poczytać. Oto kod:

document.getElementById(karta.id).src= imageArray[wartosc].src;
var first= tempArray[0];
var second= tempArray[1];
setTimeout(function(){flipback(first, second)}, 700);
tempArray = [];

usunięcie zbędnych wcięć - @furious programming

0
document.getElementById(karta.id).src= imageArray[wartosc].src;
setTimeout(function(){flipback(tempArray[0], tempArray[1])}, 700);
tempArray = [];

To wyżej nie działa?

0

Właśnie nie działa i dlatego mnie to dziwi. Chciałbym wiedzieć dlaczego, a zarazem boję się, że to strasznie głupi błąd. :)
W konsoli wyskakuje taki błąd:

Uncaught TypeError: Cannot set property 'src' of nulltest.html:52 flipbacktest.html:79 (anonymous function)

dodanie znacznika <code class="none"> - @furious programming

0

Wydaje się to niemożliwe. Pokaż jak tworzysz tempArray

0

Zrób dwie próby: pierwsza:

 document.getElementById(karta.id).src= imageArray[wartosc].src;
 var first= tempArray[0];
 var second= tempArray[1];
 console.log(tempArray);                                
 tempArray = [];

druga:

document.getElementById(karta.id).src= imageArray[wartosc].src;                            
console.log(tempArray);                                
tempArray = [];

i zobacz czym będzie się różnić.

0

@ne0
Nie ma wpływu, nic się nie zmienia.
@Sarrus
Czas przełamać barierę wstydu i pokażę kod tych funkcji :)

function flipback(first, second)
{
	var firstId = 'image' + first;
	var secondId = 'image' + second;										
	document.getElementById(firstId).src = "front.jpeg";
	document.getElementById(secondId).src = "front.jpeg";
										
}

i funkcja, w której jest zamieszanie:

function clicked(card, value)
{
	if(tempArray.length<2)
	{
		if(tempArray.length == 0)
		{
			tempArray.push(value);
			document.getElementById(card.id).src= imageArray[value].src;
		}					
		else if(tempArray.length == 1)
		{
			tempArray.push(value);
				if(imageArray[tempArray[0]].src==imageArray[tempArray[1]].src)
				{
					document.getElementById(card.id).src= imageArray[value].src;
					tempArray = [];
				}
				else
				{
					document.getElementById(card.id).src= imageArray[value].src;
					//console.log(tempArray);
					var firstTemp = tempArray[0];
					var secondTemp = tempArray[1];					
					setTimeout(function(){flipback(firstTemp, secondTemp)}, 700);
					tempArray = [];
				}
		}
					
	}
}
0

Pora nauczyć się korzystania z konsoli przeglądarki. Otwórz ten plik w konsoli i ustaw breakpointa (firebug jeżeli korzystasz z firefox). Będziesz widział co znajduje się w poszczególnych zmiennych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1