2012-04-01 7 views
0
var pieceSize = new Array(); 
pieceSize[0] = 200; 
pieceSize[1] = 400; 
pieceSize[2] = 300; 

dies nicht funktioniert:Warum funktioniert das nicht mit der jQuery Animate-Funktion?

$("#visual").animate({ 
     height: pieceSize[this.id.slice(5, 6)] 
    }, 250, function() { 
    }); 

aber das macht:

$("#visual").animate({ 
     height: pieceSize[2] 
    }, 250, function() { 
    }); 

LOG: this.id.slice (5, 6) == 0 oder 1 oder 2 (ich schneide die ID der Schaltfläche, auf die geklickt wird)

Ich habe das Hinzufügen ParseInt verschiedene Kombinationen ausprobiert und nichts davon funktioniert:

Höhe: pieceSize[parseInt(this.id.slice(5, 6))])

Höhe: parseInt(pieceSize[this.id.slice(5, 6)])

Höhe: parseInt(parseInt(pieceSize[this.id.slice(5, 6)]))

Antwort

0

Dies wird gerade arbeiten: JsFiddle

Was ist in dem Protokoll, wenn Sie pieceSize[this.id.slice(5, 6)] Echo?

+0

Protokolle als 300 außerhalb der Funktion, aber undefined innerhalb ... nicht realisiert "Dies" würde beziehen sich auf #visual –

+0

Ja, es ist, weil Sie in der Animationsfunktion Bereich sind –

2

Dies in Ihrem Fall wird die ID "visuell" holen. Ist die ID des Buttons auch "visuell"?

+0

ahh ich sehe ... nein, meine Taste hat eine andere ID (button0, button1, etc.) –