2016-10-27 1 views
0

Der Versuch, auf magic8 zu klicken, aber die fröhlichen, traurigen und überraschten Bilder werden nicht unter der Linie angezeigt. Was habe ich falsch gemacht? Ich habe die Bilder in random.js im selben Ordner gespeichert.Wie man auf ein Bild klickt, um Bilder mit einer Funktion anzuzeigen

<html> 
    <head> 
     <script type=text/javascript src="random.js"> 
     </script> 
     <script> 
     function magicEight() { 
      var imgName; 
      imgName = RandomOneOf(["happy.gif", "sad.gif", "surprised.gif"]); 
      document.getElementById('outputDiv').value = imgName; 
     } 
     </script> 
    </head> 
    <body> 
     <div style="text-align:center"> 
      <h1> Magic 8-ball (Mattel, Inc.) </h1> 
      <p> Enter a question below, then click on the Magic 8-Ball to recieve its wisdom. </p> 
      <input type="text" id="questionBox" size=90 value=""> 
      <p> 
       <input type="image" src="http://balance3e.com/Images/8ball.gif" id="button" onclick="magicEight();"> 
      </p> 
      <hr> 
      <div id="outputDiv"></div> 
     </div> 
    </body> 
</html> 
+2

was 'random.js'? Werden Fehler in der Konsole protokolliert? – Isaac

+1

und was ist 'RandomOneOf'? – Dekel

+0

Bitte posten Sie ALLEN Code. Es wird uns helfen, Ihre Frage zu beantworten. Vielen Dank. Willkommen bei Stackoverflow :) – www139

Antwort

0

Wenn Sie zeigen und Bild wollen, müssen Sie den Wert der randomoneof auf einem img-Tag nicht auf einem div Tag hinzuzufügen. Ändern Sie das und ich denke, es wird funktionieren

+0

wie? also sollte ich outputDiv nicht verwenden? –

+0

Nein, sollten Sie verwenden: Und Javascript sollten Sie den src-Wert ändern. document.getElementById ('rand-Bild') src = "path-to-the-Bild"; –

0

Einstellung .value auf outputDiv wird keine Bilder angezeigt. Sie müssen das Attribut src eines Tags setzen.

Unter der Annahme, dass alle zufälligen Bilder in /Images leben, können Sie die folgende Funktion als Ihre neue magicEight-Funktion verwenden.

function magicEight() { 
    var imgName; 
    imgName = RandomOneOf(["happy.gif", "sad.gif", "surprised.gif"]); 
    var imageTag = "<img src='/Images/" + imgName + "'>"; 
    document.getElementById('outputDiv').innerHTML= imageTag; 
} 
+0

es funktioniert nicht. Ich muss RandomOneOf benutzen und jedes Mal wenn ich auf den Ball klicke, sollte es nur eine Emotion zeigen. –

+0

@WinnieChan Ich habe meine Antwort bearbeitet. Aber wenn HienHuynh deine Frage bereits beantwortet hat, akzeptiere seine Antwort. (Es sollte irgendwo links von seiner Antwort ein Häkchen sein) – Terminus

0

Demo: https://codepen.io/hienhuynhtm/pen/dpLgNr

<script> 
    var IMAGE_LIST = [ 
     "http://balance3e.com/Images/happy.gif", 
     "http://balance3e.com/Images/sad.gif", 
     "http://balance3e.com/Images/surprised.gif" 
    ]; 
    function magicEight() { 
     var imgName = IMAGE_LIST[Math.floor(Math.random() * IMAGE_LIST.length)]; 
     document.getElementById("randomImg").src = imgName; 
    } 
</script> 

<div style="text-align:center"> 
    <h1> Magic 8-ball (Mattel, Inc.) </h1> 
    <p> Enter a question below, then click on the Magic 8-Ball to recieve its wisdom. </p> 
    <input type="text" id="questionBox" size=90 value=""> 

    <p><input type="image" src="http://balance3e.com/Images/8ball.gif" id="button" onclick="magicEight();"></p> 

    <hr /> 
    <img id="randomImg" /> 
</div> 
+0

Schön. Machen Sie einfach klar, was/wo 'randomImg' der Vollständigkeit halber ist. – Terminus

+0

@Terminus: Ich habe gerade den vollständigen Code + Demo-Link aktualisiert. Danke für Ihren Vorschlag. –

+0

ich habe es. Danke :) –

Verwandte Themen