fgtf: Neustarten

hallo,

also ich habe eine funktion werfen()
diese soll aber neugestartet werden per button

also ein restart button für ein spiel

nur wie mach ich das

danke schon mal im vorraus

  1. also ich habe eine funktion werfen()
    diese soll aber neugestartet werden per button

    Du kannst ein Event-Handler-Attribut an einem button-Element angeben und darin die Funktion aufrufen:

    <button onclick="werfen()">Neustarten</button>

    http://de.selfhtml.org/html/formulare/klickbuttons.htm
    http://de.selfhtml.org/javascript/sprache/eventhandler.htm

    Oder mit JavaScript den Handler registrieren:
    http://molily.de/js/event-handling-grundlagen.html

    Oder was meinst du mit »die Funktion neu starten«?

    Mathias

    1. danke aber es geht noch nicht

      hier der quelltext:

      <!doctype html>

      <html>
      <head>
      <title>Das Mauseloch</title>
      <meta charset="UTF-8">

      </script>

      	<script type="text/javascript">  
      
      		var randomzahl = 0;  
      		var score1 = 0;  
      		var wuerfe = 0;  
      
      		function werfen(){  
      		  
      		if (wuerfe<2){  
      			randomzahl=Math.round(Math.random()\*5+1);  
      			score1 = score1+randomzahl;  
      			document.getElementById("wuerfel1").src = randomzahl+".jpg";  
      			randomzahl=Math.round(Math.random()\*5+1);  
      			score1 = score1+randomzahl;  
      			document.getElementById("wuerfel2").src = randomzahl+".jpg";  
      			document.getElementById("player").value = score1;  
      			wuerfe = wuerfe+1;  
      		}  
      		else  
      			get.ElementById("schalter").value ="xyz";  
      		}  
      		  
      		function durchstreichen(ID){  
      			document.getElementById(ID).style.textDecoration = "line-through";  
      		}  
      
      		function Go(){  
      				durchstreichen('gewuerfelt\_'+score1);  
      

      }
      function reset(){
      document.getElementById('wuerfeln').reset();
      }

      	</script>  
      </head>  
      <body>  
      <center><h1>Das Mauseloch</h1></center>  
      <center>  
      <form name="wuerfeln">  
      	<input name="wuerfeln" id="schalter" type="button" value="Würfeln!" onClick="werfen()">  
      	</br></br></br></br>  
      	<img id="wuerfel1"> <img id="wuerfel2">  
      </center>  
      Spieler Score :  
      <input name="score1" id="player" size="2">  
       <input type="reset" value=" Abbrechen">  
      </form>  
        
      	<div id="Content">  
      		<table>  
      			<tbody>  
      				<tr>  
      					<th>Zahlen</th>  
      				</tr>  
      				<tr>  
      					<td id="gewuerfelt\_3">3</td>  
      					<td id="gewuerfelt\_4">4</td>  
      				</tr>  
      				<tr>  
      					<td id="gewuerfelt\_5">5</td>  
      					<td id="gewuerfelt\_6">6</td>  
      				</tr>  
      				<tr>  
      					<td id="gewuerfelt\_7">7</td>  
      					<td id="gewuerfelt\_8">8</td>  
      				</tr>  
      									<tr>  
      					<td id="gewuerfelt\_9">9</td>  
      					<td id="gewuerfelt\_10">10</td>  
      				</tr>  
      				<tr>  
      					<td id="gewuerfelt\_11">11</td>  
      					<td id="gewuerfelt\_12">12</td>  
      				</tr>  
      				<tr>  
      					<td id="gewuerfelt\_13">13</td>  
      					<td id="gewuerfelt\_14">14</td>  
      				</tr>  
      									<tr>  
      					<td id="gewuerfelt\_15">15</td>  
      					<td id="gewuerfelt\_16">16</td>  
      				</tr>  
      									<tr>  
      					<td id="gewuerfelt\_17">17</td>  
      					<td id="gewuerfelt\_18">18</td>  
      				</tr>  
      				  
      			</tbody>  
      		</table>  
      		<input type="button" value="Durchstreichen" onclick="Go()"/>  
      
      	</div>  
      	<button onclick="werfen()">Neustarten</button>  
      </body>  
      

      </html>

      wo muss nun der code hin damit ich das spiel neustarten ??

      1. @@fgtf:

        nuqneH

        danke aber es geht noch nicht

        „Geht nicht“ ist keine Problembeschreibung. Was erwartest du, was passiert stattdessen? Was hast du zum Finden des Fehlers bisher unternommen? Was sagt die Fehlerkonsaole deines Browsers?

        hier der quelltext:

        Quelltext ist keine Problembeschreibung.

        Aber wo wir schonmal dabei sind:

          <title>Das Mauseloch</title>  
          <meta charset="UTF-8">  
        

        Die Zeichencodierung sollte als erstes stehen, also noch vor dem 'title'.

        </script>

        Zu diesem End-Tag gibt es vorher kein Start-Tag. Also weg damit!

          <script type="text/javascript">  
        

        @type="text/javascript" ist nicht falsch, aber überflüssig.

          		randomzahl=Math.round(Math.random()\*5+1);  
        

        Das ist falsch. Wie so ziemlich immer, wenn Math.round() im Zusammenhang mit Math.random() auftaucht.

          		score1 = score1+randomzahl;  
        

        Dafür könnte man übrigens auch kürzer schreiben: score1 += randomzahl;

          		document.getElementById("wuerfel1").src = randomzahl+".jpg";  
        

        Das ist ungünstig. Bei jedem Aufruf der Funktion muss das Element mit der ID "wuerfel1" immer wieder neu im DOM gesucht werden. Das kostet vielleicht nicht viel, aber dennoch sinnlos Zeit. Und Strom.

        Besser: Am Anfang des Scripts – also außerhalb der Funktion – das Element suchen und in einer Variablen speichern:
        var wuerfel1Element = document.getElementById("wuerfel1");

        Innerhalb der Funktion dann: wuerfel1Element.src = randomzahl+".jpg";

        <center><h1>Das Mauseloch</h1></center>

        In HTML5 gibt es kein 'center'-Element. Formatierungen solltest du nicht mit missbilligten HTML-Elementen oder -Attributen machen, sondern mit CSS.

        <form name="wuerfeln">

        Wenn du kein Formular hast, dessen Daten abgeschickt werden, brauchst du kein 'form'-Element.

          <input name="wuerfeln" id="schalter" type="button" value="Würfeln!" onClick="werfen()">  
        

        Für Buttons gibt es das 'button'-Element.

          </br></br></br></br>  
        

        Zu diesen End-Tags gibt es keine Start-Tags. Also weg damit!

        Und wären es Start-Tags, würde ich da was hören. Abstände mit CSS.

          <img id="wuerfel1"> <img id="wuerfel2">  
        

        'img'-Elemente verlangen nach @src- und @alt-Attributen.

        <input name="score1" id="player" size="2">

        Warum ein 'input'-Element für die _Aus_gabe? Dafür ist das 'output'-Element da.

        <input type="reset" value=" Abbrechen">

        Ach dafür brauchst du das 'form'-Element?

          <button onclick="werfen()">Neustarten</button>  
        

        Noch ein Button, der werfen() aufruft?

        Qapla'

        --
        Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
        1. Hi Gunnar,

            		document.getElementById("wuerfel1").src = randomzahl+".jpg";  
          

          Das ist ungünstig. Bei jedem Aufruf der Funktion muss das Element mit der ID "wuerfel1" immer wieder neu im DOM gesucht werden. Das kostet vielleicht nicht viel, aber dennoch sinnlos Zeit. Und Strom.

          Besser: Am Anfang des Scripts – also außerhalb der Funktion – das Element suchen und in einer Variablen speichern:
          var wuerfel1Element = document.getElementById("wuerfel1");

          Innerhalb der Funktion dann: wuerfel1Element.src = randomzahl+".jpg";

          glaube das geht nicht so einfach mit zack auslagern und gut. Wenn ich das richtig verstehe, dann hört der Browser mit dem Parsen auf, wenn er auf JavaScript trifft. Kurz, an der Stelle wo man das jetzt "ausgelagern" würde, gibt es das Element noch gar nicht im Dokument.

          Gruß achim

          1. Om nah hoo pez nyeetz, achim!

            glaube das geht nicht so einfach mit zack auslagern und gut. Wenn ich das richtig verstehe, dann hört der Browser mit dem Parsen auf, wenn er auf JavaScript trifft. Kurz, an der Stelle wo man das jetzt "ausgelagern" würde, gibt es das Element noch gar nicht im Dokument.

            Ja. Setze das Script an das Ende des Dokuments, etwa vor </body>.

            Matthias

            --
            1/z ist kein Blatt Papier.

          2. @@achim:

            nuqneH

            Wenn ich das richtig verstehe, dann hört der Browser mit dem Parsen auf, wenn er auf JavaScript trifft.

            Stimmt. Deshalb ist es nicht die schlechteste Idee, JavaScript am Ende des 'body' einzubinden.

            Kurz, an der Stelle wo man das jetzt "ausgelagern" würde, gibt es das Element noch gar nicht im Dokument.

            Stimmt. Auch das ein Vorteil, wenn JavaScript am Ende des 'body' steht: man spart sich 'domready'- oder 'load'-Eventhandler.

            Qapla'

            --
            Wer möchte nicht lieber durch Glück dümmer als durch Schaden klüger werden? (Salvador Dalí)
      2. Hallo fgtf,

        hab's nur kurz überflogen aber die Variable "wuerfe" wird nie zurückgesetzt. Es sei denn du lädst die Seite neu.

        Gruß achim