JavaScript Button verschwindet

an-ti

Member
4 Juni 2011
10
0
Hallo
ich beschäftige mich noch nicht so lange mit Javascript, und wollte nun ein "wie viel klicks schaffst du in 10 sekunden" spiel machen.
Leider verschwindet der button zu anklicken schon beim ersten mal anklicken.
wie kommt das.
hier ist der code:
HTML:
<script language="javascript" type="text/javascript">
var buttonklicks = 0;
function sonstige_funktionen(){
    if(buttontest1 == true){
        buttonklicks++;
        document.write(buttonklicks);
    }
}
</script>
<input type="button" onclick="buttontest1=true;sonstige_funktionen();">
 
Du solltest JS auch sagen wohin die Zahl geschrieben wird. Eine der beiden Varianten wird wohl passen.
HTML:
  <script language="javascript" type="text/javascript">
    var buttonklicks = 0;
    function sonstige_funktionen(){        
        buttonklicks++;
        document.getElementById('zaehler').innerHTML = buttonklicks;
        document.getElementById('klickbutton').value = buttonklicks;
        return true;
    }
  </script>

// ...
<input id="klickbutton" value="0" type="button" onclick="sonstige_funktionen();">
<div id="zaehler">0</div>

Aber eine ganz andere Frage: Was bringt das eigentlich? Und wenn es was bringt, wie stellst du sicher, dass der Benutzer die Scriptausführung bei sich nicht manipuliert?
 
weisst du, mir is langweilig und ich will etwas "lustiges" machen
und das mit dem benutzer, ich stell es nicht online wie gesagt mir is langweilig
 
Hat sich vielleicht schon erledigt. Dennoch:
HTML:
<script type="text/javascript"> 
//<![CDATA[
var buttonklicks = 0;
var timer = undefined;
var maxTime = 10 * 1000; // 10 Sekunden
function sonstige_funktionen(){
    if (!timer) {
        timer = new Date();
    }
    var timer2 = new Date();
    if ((timer2 - timer) > maxTime) {
        // zeit abgelaufen
        return;
    }
    buttonklicks++; 
    document.getElementById('zaehler').innerHTML = buttonklicks; document.getElementById('klickbutton').value = buttonklicks; 
}
//]]> 
</script>
 ... 
<input id="klickbutton" value="0" type="button" onclick="sonstige_funktionen();return false;"> <div id="zaehler">0</div>

Erklärung:
Die Variable timer wird beim ersten Aufruf auf das aktuelle Datum gesetzt
HTML:
 if (!timer) {
        timer = new Date();
    }
timer2 wird bei jedem Aufruf auf das aktuelle Datum gesetzt. dann wird überprüft, ob das aktuelle Datum minus das Startdatum größer als 10 Sekunden ist. Wenn das der Fall ist, bricht die funktion hier ab.
HTML:
var timer2 = new Date();
    if ((timer2 - timer) > maxTime) {
        // zeit abgelaufen
        return;
    }
So simpel!
P.S.: Beim onclick muss ein return false; rein, da sonst einige Browser versuchen die Seite als Formular abzuschicken.