Elementy tablicy jako parametry funkcji

2015-02-18 13:33
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

edytowany 1x, ostatnio: furious programming, 2015-02-18 16:36

Pozostało 580 znaków

2015-02-18 13:38
0
document.getElementById(karta.id).src= imageArray[wartosc].src;
setTimeout(function(){flipback(tempArray[0], tempArray[1])}, 700);
tempArray = [];

To wyżej nie działa?

Pozostało 580 znaków

2015-02-18 13:41
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

edytowany 1x, ostatnio: furious programming, 2015-02-18 16:37
Treść błędów wstawiaj w znaczniki &lt;code=none&gt; - furious programming 2015-02-18 16:37

Pozostało 580 znaków

2015-02-18 15:55
0

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

edytowany 1x, ostatnio: Sarrus, 2015-02-18 15:55

Pozostało 580 znaków

2015-02-18 16:06
ne0
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ć.


Pomogłem? To dobrze :)
edytowany 1x, ostatnio: ne0, 2015-02-18 16:07

Pozostało 580 znaków

2015-02-18 17:40
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 = [];
                }
        }

    }
}
edytowany 1x, ostatnio: NauczeSieKorzystacZGoogla, 2015-02-18 17:41

Pozostało 580 znaków

2015-02-19 08:34
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.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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