2016-03-31 33 views
-1

Einfache Schaltfläche, die neue Elemente <p> erstellen sollte, wenn es geklickt hat, aber es funktioniert nicht und ich bin mir nicht sicher, warum, wie ich es mit anderem Code von mir verglichen habe..append funktioniert nicht auf klicken

Demo

var battle = function() { 
    while(monsterHP > 0){ 
     var playerDam = Math.floor(Math.random() * ((playerAtk - monsterAtk) + 2); 
     $('#battle').append("<p>You have hit the monster for " + playerDam + " damage. The monster has " + (monsterHP - playerDam) + "HP left</p>"); 
     monsterHP -= playerDam; 
     if(monsterHP <= 0) { 
      $('#battle').append("<p>You have defeated the monster</p>"); 
     } 
    } 
} 

$('#battleButton').click(function() { 
    battle(); 
} 
+3

Haben Sie sich die Browserkonsole angesehen? Es gibt einen Syntaxfehler. – Xufox

Antwort

5

Sie in Ihrem Code viele Syntaxfehler haben. Wenn Sie sie korrigieren (wie unten), dann funktioniert es gut. Wenn Sie ein JQuery-Append schreiben, müssen Sie nach Ihrem Argument ein ')' einfügen. Ebenso müssen Funktionen nach ihnen ein '}' haben.

var playerAtk = 5; 
var playerDef = 5; 
var playerHP = 10; 
var monsterAtk = 4; 
var monsterDef = 4; 
var monsterHP = 8; 

var battle = function() { 
    while(monsterHP > 0){ 
     var playerDam = Math.floor(Math.random() * ((playerAtk - monsterAtk) + 2)); 
     $('#battle').append("<p>You have hit the monster for " + playerDam + " damage. The monster has " + (monsterHP - playerDam) + "HP left</p>"); 
     monsterHP -= playerDam; 
     if(monsterHP <= 0) { 
      $('#battle').append("<p>You have defeated the monster</p>"); 
     } 
    } 
} 

$('#battleButton').click(function() { 
    battle(); 
}); 
+2

Danke, dass du das herausgefunden hast, bevor du geantwortet hast, schätze, ich habe zu schnell gepostet. – Shniper

+1

@Shniper Wenn dies Ihre Frage beantwortet, markieren Sie es als beantwortet. TY –

Verwandte Themen