2016-12-22 6 views
2

Warum überschreibt mein onclick eine früher ausgeführte js-Funktion nicht? Die Funktion wird innerhalb eines Echos in PHP ausgelöst. Die Funktion wird ausgeführt und ändert ein Bild und seine Breite und Höhe. Später, wenn ich auf meine Schaltfläche klicke, möchte ich, dass sich das Bild wieder ändert, jedoch ändert sich nur das Bild und nicht die Breite und Höhe.Warum überschreibt mein onclick eine früher ausgeführte js-Funktion nicht?

<script> 
    function helmfunc() {    
       document.getElementById("helmplace").src = "helmimg/s_helmet.png"; //executes        
    document.getElementById("helmplace").style.width = "22px"; //executes 
    document.getElementById("helmplace").style.height = "31px"; //executes      
       } 
</script> 
<img id="helmplace" name="showh" src="redx3.png" width="25" height="30" /> 
<span onclick="showh.src = x_helm.src; showh.width = x_helm.width; showh.height = x_helm.height; helm.value = 'x helm'"> 
       <il> 
        <img id="xhelmid" name="x_helm" src="helmimg/x_helmet.png" width="22" height="31" />x Helm 
       </il> 
      </span> 

Innerhalb einiger php: (am weitesten unten im Körper)

echo '<script type="text/javascript"> slayerhelmfunc(); </script>'; 
+1

Verwenden Sie ein Event-Listener statt eines Onclick. –

+0

Yup funktioniert jetzt, fiel ein bisschen dumm, dass ive auf diesem so lange stecken geblieben sind: P –

+3

@ThomasJuranek Da es funktioniert zu haben scheint, können Sie Ihren Kommentar zu einer Antwort ändern, so dass es upvoted und akzeptiert werden kann? – techturtle

Antwort

3

Statt ein Onclick zu verwenden, die allgemein akzeptierte Art und Weise Code auf einem Klick ausführen Ereignis-Listener verwendet. Hier ein Beispiel:

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
\t <input type="number" id="inputInteger" /> 
 
\t <input type="submit" id="btnSubmit" text="Submit" /> 
 
    
 
    <p id="result"></p> 
 

 
\t <script type = "text/javascript"> 
 
     // Event Listener that Runs "Compute()" on a Click 
 
     document.getElementById("btnSubmit").addEventListener("click", compute); 
 

 
     // Gets Input Value and Displays it in a <p> 
 
     function compute() { 
 
      var day = document.getElementById("inputInteger").value; 
 
      document.getElementById("result").innerHTML = day; 
 
     } 
 
    </script> 
 
</body> 
 
</html>

Verwandte Themen