scriptschnipsel soll folgendes machen.
1. Klick auf erste Karte: Karte wird aufgedeckt
2. Klick auf zweite Karte: karte wird aufgedeckt
3. je nachdem ob karten übereinstimmen oder nicht, werden Funktionen aufgerufen mit denen die Karten nach einer wartezeit von 2 sec. entweder "zurück gedreht" oder durch eine 1x1 px Grafik ersetzt.
Problem ist, ohne die Funktionen zum zurückdrehen, lassen sich die Karten aus Schritt 1 und 2 aufdecken. Mit den Funktionen lässt sich die zweite Karte nicht "umdrehen", aber die Funktionen zum zurückdrehen werden nach 2 sec. ausgeführt.
Also ich finde keinen Fehler, eventuell ein logischer Fehler. Warum wird die zweite Karte nicht aufgedeckt?
seite wo es gerade läuft oder nicht läuft
www.hoppaa.com/memory
JavaScript
<script type="text/javascript">
var x=0;
var Karte1;
var Karte2;
var zelle;
var zellenr1="";
var zellenr2="";
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
function kartenweglegen (zelle1,zelle2) { //beide geöffneten Karten sind gleich
var seite = "images/pix.png";
$(zelle1).attr("src", seite).attr("width", "1px").attr("height", "1px");
$(zelle2).attr("src", seite).attr("width", "1px").attr("height", "1px");
}
function kartenzurueckdrehen (zelle1,zelle2) { //beide Karten sind nicht gleich und die karten werden zurückgedreht
var seite = "memoryback.jpg";
$(zelle1).attr("src", seite);
$(zelle2).attr("src", seite);
}
function funktionenoeffnen(kartennummer,zellennr) {
zelle = "#zelle"+zellennr;
var seite = "images/deck/gemischt/"+kartennummer+".jpg";
$(zelle).attr("src", seite); // Karte aufdecken
if (zellenr1 == "") { zellenr1=zelle; var zx=0 }
if (zellenr1 != "") zellenr2=zelle;
if (x==0) { Karte1=kartennummer; }
if (x==1) { Karte2=kartennummer; }
x++;
if (x>=2) {
if (Karte1==Karte2) { //beide geöffneten Karten sind gleich
sleep(2000);
kartenweglegen (zellenr1,zellenr2);
}
else { //beide Karten sind nicht gleich
sleep(2000);
kartenzurueckdrehen (zellenr1,zellenr2);
}
}
//$('#example-placeholder').html('<p><img src="loader.gif" /></p>');
//$('#example-placeholder').load(seite);
}
</script>
Alles anzeigen