Avatar billede jonas1045 Nybegynder
12. marts 2012 - 13:32 Der er 8 kommentarer og
1 løsning

Timing af events

Håber der er en som kan hjælpe med et script her.
Det skal være sådan at man har et input text felt og en knap, i feltet indtaster man fx. 20, og så når man klikker på knappen, så gør den noget hvert 20 sekund.
Avatar billede olebole Juniormester
12. marts 2012 - 13:44 #1
<ole>

Du kunne skrive noget i stil med:

<script type="text/javascript">
function bar() {
    alert("HeyHep");
}
function foo() {
    var elm = document.getElementById("fooBar"),
    num = elm.value;
    if (foo.timer) clearInterval(foo.timer);
    if (!(/^[0-9]+$/).test(num)) {
        alert("Du skal skrive et tal.");
        elm.focus();
        return false;
    }
    foo.timer = setInterval("bar()", parseInt(num)*1000);
}
</script>

<input id="fooBar" type="text">
<button onclick="foo()">TEST</button>

/mvh
</bole>
Avatar billede jonas1045 Nybegynder
12. marts 2012 - 15:10 #2
Nice tusind tak, virker som det skal :)
Avatar billede olebole Juniormester
12. marts 2012 - 16:31 #3
Selvtak. Jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede jonas1045 Nybegynder
12. marts 2012 - 16:40 #4
Okay, en lille sidste ting du sikkert ved hvordan man laver, vil gerne tælle antal gange at setInterval har kørt, og få det skrevet ud på skærmen, altså sådan løbende som den kører, kan du hjælpe med det ?

function bar() {
    var thissound=document.getElementById('sound1');
    thissound.Play();
}
function foo() {
    var elm = document.getElementById("fooBar"),
    num = elm.value;
    if (foo.timer) clearInterval(foo.timer);
    if (!(/^[0-9]+$/).test(num)) {
        alert("Du skal skrive et tal.");
        elm.focus();
        return false;
    }
    foo.timer = setInterval("bar()", parseInt(num)*1000);
}
function fooStop() {
    clearInterval(foo.timer);
}
Avatar billede olebole Juniormester
12. marts 2012 - 17:00 #5
<script type="text/javascript">
function bar() {
    var thissound=document.getElementById('sound1');
    thissound.Play();
    foo.display.nodeValue = parseInt(foo.display.nodeValue)+=1;
}
function foo() {
    var elm = document.getElementById("fooBar"),
    num = elm.value;
    if (foo.timer) clearInterval(foo.timer);
    if (!foo.display) foo.display = document.getElementById("display").firstChild;
    foo.display.nodeValue = "0";
    if (!(/^[0-9]+$/).test(num)) {
        alert("Du skal skrive et tal.");
        elm.focus();
        return false;
    }
    foo.timer = setInterval("bar()", parseInt(num)*1000);
}
function fooStop() {
    if (!foo.display) return;
    clearInterval(foo.timer);
    foo.display.nodeValue = "0";
}
</script>

<span id="display">0</span>
Avatar billede jonas1045 Nybegynder
13. marts 2012 - 13:42 #6
Tak, men kan ikke få det til at virke, den bliver på 0
Avatar billede olebole Juniormester
13. marts 2012 - 16:04 #7
Slet lighedstegnet:

foo.display.nodeValue = parseInt(foo.display.nodeValue)+1; // <-- Der

- og husk altid at fortælle, når du får en JavaScript fejl. Det gør det meget lettere at finde en evt. fejl  =)
Avatar billede jonas1045 Nybegynder
15. marts 2012 - 10:22 #8
Tusind tak for hjælpen, har fået det hele til at virke som det skal, rigtig dejligt :)
Avatar billede olebole Juniormester
15. marts 2012 - 12:02 #9
Det var så lidt  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester