2016-05-03 21 views
0

Ich versuche, eine Funktion auf einen Tastendruck aufzurufen, aber aus irgendeinem Grund ruft die Schaltfläche die Funktion nicht auf. Dreamweaver zeigt keine Syntaxfehler an. Kann mir jemand sagen, warum der Knopf nicht funktioniert?Taste ruft keine Funktion richtig auf

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta charset="utf-8" /> 
    </head> 
    <head> 
    <title></title> 


<script type="text/javascript"> 

     var imgObj = 0; 
     var imgObj1 = 0; 
     var animate; 
     var animate1; 

     function init(){ 
      imgObj = document.getElementById('red'); 
      imgObj.style.position= 'relative'; 
      imgObj.style.left = '0px'; 
      imgObj1 = document.getElementById('blue'); 
      imgObj1.style.position = 'relative'; 
      imgObj1.style.left = '0px'; 
     } 

     function moveRight(){ 
      imgObj.style.left = parseInt(imgObj.style.left = 0) + Math.floor((Math.random() * 100) + 1) + 'px'; 

      animate = setTimeout(moveRight(), 1000); 
      imgObj1.style.left = parseInt(imgObj1.style.left = 0) + Math.floor((Math.random() * 100) + 1) + 'px'; 

      animate1 = setTimeout(moveRight(), 1000); 
      if (imgObj.style.left >= 1000px || imgObj1.style.left >= 1000px) 
      { 
       break; 
       else if 
       { 
        imgObj.style.left>= 1000 
        MessageBox.show("The Red Car has won the Race!"); 
       } 
       else 
       { 
        MessageBox.show("The Blue Car has won the Race!"); 
       } 

      } 
     }   
</script> 

</head> 

<body onload = "init()"> 

    <form> 
    <input type="button" value="Start" onclick="moveRight()" /> 
    <br/><br/><br/><br><br/><br/><br/> 
    <img id="red" src="redcar.png" alt="Car 1"/> 
    <br/><br/><br/><br> 
    <img id="blue" src="bluecar.png" alt ="Car 2" /> 

    </form> 
</body> 
</html> 
+0

was ist die Schaltfläche klicken Sie nehme an? – gurvinder372

+0

Eine Sache; 'setTimeout (moveRight(), 1000);' sollte 'setTimeout (moveRight, 1000) sein;' – Andy

+0

Funktioniert die Schaltfläche? Aka, gibt das Hinzufügen einer Warnung diese Warnung? Wird imgObj korrekt gefunden? Und dann ja, die Timeout-Syntax. – Shilly

Antwort

1

Leider gibt es so viele Fehler, dass es schwierig ist zu wissen, wo ich anfangen soll. Die erste Antwort auf Ihre Frage ist, dass die Schaltfläche nichts getan hat, weil Ihr Code nicht kompiliert wird. Ich weiß nicht, warum Dreamweaver keinen Fehler gemeldet hat. Die Entwicklungstools von Chrome waren mehr als zufrieden.

Hier ist eine "working" Version:

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta charset="utf-8" /> 
<title></title> 
<script type="text/javascript"> 
var imgObj = 0; 
var imgObj1 = 0; 
var animate1; 

function init(){ 
    imgObj = document.getElementById('red'); 
    imgObj.style.position= 'relative'; 
    imgObj.style.left = '0px'; 
    imgObj1 = document.getElementById('blue'); 
    imgObj1.style.position = 'relative'; 
    imgObj1.style.left = '0px'; 
} 

function moveRight(){ 
    var redPosition = parseInt(imgObj.style.left); 
    imgObj.style.left = redPosition + Math.floor((Math.random() * 20) + 1) + 'px'; 
    var bluePosition = parseInt(imgObj.style.left); 
    imgObj1.style.left = bluePosition + Math.floor((Math.random() * 20) + 1) + 'px'; 

    if (redPosition >= 1000 || bluePosition >= 1000) 
    { 
     if (redPosition >= 1000) { 
      alert("The Red Car has won the Race!"); 
     } 
     else 
     { 
      alert("The Blue Car has won the Race!"); 
     } 
     return; 
    } 
    animate1 = setTimeout(moveRight, 50); 
} 
</script> 
</head> 
<body onload = "init()"> 
<form> 
    <input type="button" value="Start" onclick="moveRight()" /> 
    <br/><br/><br/><br><br/><br/><br/> 
    <img id="red" src="redcar.png" alt="Car 1"/> 
    <br/><br/><br/><br> 
    <img id="blue" src="bluecar.png" alt ="Car 2" /> 
</form> 
</body> 
</html> 
+0

Können Sie mir sagen, welche Änderungen Sie vornehmen mussten, damit es funktioniert? – Abhishek

+0

Siehe alle Kommentare ... – Andy

+0

Danke für einen Blick. Ich schätze, ich werde vorerst zu Chrome wechseln. Mit den Benachrichtigungen verstehe ich, dass Sie keine benutzerdefinierten Schaltflächen hinzufügen können. Wäre es möglich, ein Dialogfeld mit einer Schaltfläche zum Zurücksetzen des Rennens zu erstellen? Der einzige Weg, an den ich mit meinem begrenzten Wissen denken könnte, wäre, einen Knopf auf der Seite zu haben, der sichtbar wird, sobald das Rennen vorbei ist. – Shadough

Verwandte Themen