2016-06-01 5 views
0

auf meiner Ich würde gerne hinzufügen, um die Klasse "Label", um das Ergebnis zu zeigen.Jquery RockPaperScissors Spiel wird nicht wie erwartet funktionieren

Was ich erreichen will ist

  • Durch klicken Sie auf die .Taste addClass <label class="win"> an den Gewinner
  • und addClass <label class="lose"> zum Verlierer.

es ist fast da, aber scheint nicht konsistent zu sein.

Auch die Simulation durch Klicken auf computervcomputer Schaltflächen zeigen das gleiche.

Sorry für die Geige, aber das Snippet funktionierte hier nicht. https://jsfiddle.net/e9ew0cne/1/

+0

Ich verstehe nicht, was Ihr Problem ist. Ich habe Ihren Code ausprobiert und habe mit der JS-Konsole geblättert und es scheint, dass das '' die richtige Klasse bekommt ('win' oder' loose' oder tie abhängig vom 'case') . Vielleicht sollten Sie Ihre Frage aus Gründen der Klarheit neu formulieren. – raphv

+0

Hat etwa 50 Läufe, scheint alles in Ordnung zu sein: P –

+0

Durch Klicken auf die. Schaltfläche addClass

Antwort

0

bearbeiten Antwort überarbeitet vollständig auf weiter die Frage zu verstehen.

 function compare(choice1, choice2) { 
      if (choice1 == choice2) { 

       $(".result").text("Tie!").addClass('tie'); 
       $(".reset").addClass('xs-block'); 
      } else if (
      (choice1 == "rock" && choice2 == "scissors") || (choice1 == "scissors" && choice2 == "paper") || (choice1 == "paper" && choice2 == "rock")) { 
       $(".result").text("You win!").addClass('win'); 

       $('#'+choice1).next('label').addClass('win'); 
       $('#'+choice2).next('label').addClass('lose'); 

       $(".reset").addClass('xs-block'); 
      } else { 
       $(".result").text("You lose!").addClass('lose'); 

       $('#'+choice2).next('label').addClass('win'); 
       $('#'+choice1).next('label').addClass('lose'); 

       $(".reset").addClass('xs-block'); 
      } 

     }; 

Ich habe a working fiddle, aber die wichtigste Veränderung war ich über die Funktion gemacht. Anstatt zu versuchen, die Etiketten über eine Sammlung von Klassen in den <i> Tags zu finden, habe ich es auf die Verwendung der eindeutigen id der button Tags geschaltet. Dies bedeutete, die jquery von prev zu next zu ändern. Außerdem gab es einen Fehler im Original, der bedeutete, dass die Computerauswahl immer als verlierend markiert war ...

+0

Danke, bitte werfen Sie einen Blick auf diese Geige, zeigt es die Klasse in Aktion, aber nicht richtig funktionieren. https://jsfiddle.net/e9ew0cne/1/ – user3699998

+0

Okay, das hat mir geholfen, meine Antwort komplett zu überarbeiten. Ich habe ursprünglich nicht bemerkt, dass du versucht hast, die Klasse der "i" -Tags anzuhängen. Neue Antwort nimmt dies und eine Reihe anderer Bugs in Betracht ... – AntonChanning

Verwandte Themen