Toon posts:

[js] div changen

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

ik heb een functie gemaakt die na een bepaalde tijd, via een setTimeout de innerHTML van een div moet wijzigen. Maarr... hij doet ut niet...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script language="JavaScript 1.2" type="text/JavaScript">
<!--

function delay(msg, ms)
{   

    var current = document.getElementById('content').innerHTML;
    var msg;
    var ms;

    var future = current+msg;

    setTimeout("document.getElementById('content').innerHTML = future", ms);
}

delay("hoii <br>", 1000);
delay("hoiiii", 1000);

// -->
</script>

<div id="content">
 </div>


Kan iemand mij vertellens wat er fout gaat?

Ik krijg geen errors of iets...

[ Voor 16% gewijzigd door Verwijderd op 15-09-2003 15:32 . Reden: aanvulling ]


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

Clay

cookie erbij?

ik krijg wel een error. Future is undefined (whoo, cryptisch ;) ) dat komt omdat je die als locale variabele declareert, en die timeout "draait" niet in die delay functie, maar globaal. Die kent de future dus niet. En je stopt ook niets in msg, dus current + msg blijft leeg.

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


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

Je herdeclareerd ook de variabelen die je als parameters meegeeft...

[ Voor 4% gewijzigd door crisp op 15-09-2003 15:38 ]

Intentionally left blank


Verwijderd

Topicstarter
ik had hem eerst idd zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script language="JavaScript 1.2" type="text/JavaScript">
<!--

function delay(msg, ms)
{   

    var current = document.getElementById('content').innerHTML;

    var future = current+msg;

    setTimeout("document.getElementById('content').innerHTML = future", ms);
}

delay("hoii <br>", 1000);
delay("hoiiii", 1000);

// -->
</script>


maar ook dat werkte niet...

btw: ik krijg geen errors hier... IE6.*

[ Voor 15% gewijzigd door Verwijderd op 15-09-2003 15:39 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">

function delay(msg, ms)
{   

    var current = document.getElementById('content').innerHTML;

    var future = current+msg;

    setTimeout('document.getElementById(\'content\').innerHTML=\''+future+'\'', ms);

}

delay('hoii <br>', 1000);
delay('hoiiii', 1000);

</script>

Intentionally left blank


Verwijderd

Topicstarter
Ehm, ook dat werkt niet.

  • gekkie
  • Registratie: April 2000
  • Laatst online: 29-07 09:15
D'r was geloof ik ook een functie waarbij je kan "appenden" binnen een setje tags.
Is zoeken in de msdn-library (mits het alleen in MSIE hoeft te werken) ?

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

Clay

cookie erbij?

of zo, kan ook nog (niet in ie5.0);

JavaScript:
1
2
3
4
5
6
7
8
function delay(msg, ms) {
    setTimeout(function() { 
        document.getElementById('content').innerHTML += msg; 
    }, ms);
}

delay('hoii <br>', 1000);
delay('hoiiii', 1000);

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


Verwijderd

Topicstarter
Ja, dat werkt wel, maar dan komt alles tegelijk en niet met intervallen van een seconde...

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

zo dan:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">

function delay(msg, ms)
{    

    setTimeout('document.getElementById(\'content\').innerHTML+=\''+msg+'\'', ms);

}

delay('hoii <br>', 1000);
delay('hoiiii', 1000);

</script>


te laat.... ;)

[ Voor 4% gewijzigd door crisp op 15-09-2003 15:54 ]

Intentionally left blank


  • gekkie
  • Registratie: April 2000
  • Laatst online: 29-07 09:15
wat dat je van de method: insertAdjacentHTML() ?

Verwijderd

Topicstarter
voor de methode van crips geldt hetzelfde. werkt prima, maar tegelijk.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

Verwijderd schreef op 15 September 2003 @ 15:54:
voor de methode van crips geldt hetzelfde. werkt prima, maar tegelijk.
ja, logisch toch?

Intentionally left blank


  • gekkie
  • Registratie: April 2000
  • Laatst online: 29-07 09:15
uhmm lijkt tegelijk omdat je 2 delays bijna op hetzelfde moment worden uitgevoerd .. en dezelfde aantal ms hebben ..

Verwijderd

Topicstarter
Ah, eigenlijk wel... :D
ik had hem natuurlijk danwel (hoeheetdatookalweer, een functie die zichzelf weer aanroept) moeten maken, danwel zelf de ms-time op moeten schroeven :)

thanks, het werkt nu
Pagina: 1