Avatar billede venchil Nybegynder
23. august 2007 - 18:53 Der er 2 kommentarer

Kør funktion hvert sekund så længe musen er over en div

Hej eksperter,

Hvordan laver jeg en funktion, som kan køre en anden funktion så længe at musen er over en div... Så hvis jeg f.eks har musen på en div i 10 sek. skulle funktionen gerne have kørt 10 gange...

På forhånd tak.
Avatar billede olebole Juniormester
23. august 2007 - 19:08 #1
<ole>

<script type="text/JavaScript">
var bla = false;
var timer = null;
function foo() {
    var displ = document.getElementById("gnu");
    if (!bla) {
        displ.firstChild.nodeValue = "-1";
        bla = true;
    }
    if (bla) {
        displ.firstChild.nodeValue = parseInt(displ.firstChild.nodeValue)+1;
        timer = setTimeout("foo()", 1000);
    }
}
function bar() {
    if (timer) clearTimeout(timer);
    bla = false;
}
</script>

<a href="#" onmouseover="foo()" onmouseout="bar()">TESTING</a>

<div id="gnu">&nbsp;</div>

/mvh
</bole>
Avatar billede jhe-ting Nybegynder
02. september 2007 - 17:38 #2
Ole's eksempel ser ud til at virke.
Er det ikke nok?
Her er et andet bud på hvordan det kan gøres:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<title>Ekselpel til spm/793913</title>
<script type="text/javascript"><!--
var running = false;
var action = null;
var target = null;
function startTimer(pfnAction,targetID){
    action = pfnAction;
    target = document.getElementById(targetID);
    target.style.backgroundColor="#FFE0F0";
    if (!running) {
        running = setInterval(pfnAction,1000);
    }
}
function stopTimer(){
    if (running) {
        clearInterval(running);
        running=false;
        target.style.backgroundColor="";
    }
}
function incrementTarget(){
    if (target) {
        target.firstChild.nodeValue = +target.firstChild.nodeValue+1;
    }
}
//--></script>
</head><body>
<h1>Eksempel til spm/793117</h1>
<h2>mouseOverTimer - demo</h2>
<p>
<hr>
<div onmouseover="startTimer(incrementTarget,'counter1')"
    onmouseout="stopTimer()"
    style="background-color:#F0E0FF">
        mouseover1
</div>
<p>
<h4>Counter1</h4><div id="counter1">0</div>
<p>
<hr>
<div onmouseover="startTimer(incrementTarget,'counter2')"
    onmouseout="stopTimer()"
    style="background-color:#F0E0FF">
        mouseover2
</div>
<p>
<h4>Counter2</h4><div id="counter2">0</div>
</body></html>
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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