I only want to have the click add one count, not repeated additions to the content

StackOverflow https://stackoverflow.com/questions/22162725

  •  19-10-2022
  •  | 
  •  

Frage

In class we are learning JavaScript, and we have to find out how to stop the button click from repeatedly adding the count with .insertbefore I'm stumped as to why it continually inserts the count.

      function clicked() {
            console.log("Clicked!");
            var count = "Node Count: "+countChildren(document.getElementById("content"));
            console.log(count);
      try {
            var span = document.createElement("span");
            span.innerHTML = count;
            document.getElementsByTagName("body")[0].insertBefore(span, document.getElementById("content"));
      } catch(ex) {
            console.log("error "+ex)
           }
      }

Keine korrekte Lösung

Andere Tipps

You need to check if the node is already added.

 var count = ...
 if ( count !== 0 ) {
      return;
 }

 try {
     ...
 }
 catch(ex) {
     ...
 }

Modify your button HTML like this

<input type ="button" onclick="clicked(); this.onclick=null;"/>

so when once click function is executed, this will stop further clicking actions

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top