[JavaScript] Timeout kent var x niet

Pagina: 1
Acties:

  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54
Ik heb dit scriptje:
code:
1
2
3
4
5
function a(x)
{
        x.bgColor='D3C6BA';
        setTimeout("x.bgColor='FFFFFF';",1500);
}

Dat wordt gebruikt bij een <td> met onmouseover="a(this)"
De cel wordt dan wel #D3C6BA, maar bij de timeout krijg ik de fout:
Fout: 'x' niet gedefinieerd

Waarom kent die timeout 'x' niet? En hoe laat ik hem herkennen :?

edit:
zoiets werkt ook niet:
code:
1
2
3
4
5
6
function a(x)
{
        var blaat = x;
        blaat.bgColor='D3C6BA';
        setTimeout("blaat.bgColor='FFFFFF';",1500);
}

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

die x is geen globale var, en is dus weg direct nadat die timeout geset is. wat je kan doen is dus wel een globale var gebruiken, maar dat gaat zwaar in de soep lopen als je dat met mouseovers op tablecellen doet. ik zou dus gewoon die timeout eruit halen en een mouseout gebruiken om de kleur terug te zetten.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54
Oké. Dan maar gewoon ook een onmouseout="b(x)".
Tenzij iemand anders nog een betere oplossing heeft :)

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<head>
<style type="text/css">
body,div,td {font-family:tahoma; font-size:10px;}
</style>
<script language="javascript">

function colorMe(id, color) {
    var obj = document.getElementById(id);
    obj.style.backgroundColor = color || 'white';

    if(obj.timer) clearTimeout(obj.timer);
    if(color) obj.timer = setTimeout("colorMe('"+id+"')", 200)
}

</script>
</head>
<body>

<table border=0 cellpadding=1 cellspacing=1>
<tr><td id="ding1" onmouseover="colorMe('ding1','silver')"> lorem bladie </td></tr>
<tr><td id="ding2" onmouseover="colorMe('ding2','silver')"> lorem bladie </td></tr>
<tr><td id="ding3" onmouseover="colorMe('ding3','silver')"> lorem bladie </td></tr>
<tr><td id="ding4" onmouseover="colorMe('ding4','silver')"> lorem bladie </td></tr>
<tr><td id="ding5" onmouseover="colorMe('ding5','silver')"> lorem bladie </td></tr>
</table>

</body>
</html>

maar ik vind een mouseout zelf "beter", is gewoon duidelijker.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin