[js] DIV maken en na 2 seconden verwijderen (ongelimiteerd)

Pagina: 1
Acties:

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
Ej,

zoals sommige weten was ik al aan de gang gegaan met het DHTML contest, na een snel idee inelkaar geprakt te hebben ben ik het nu aan het uitwerken op een nette, makkelijk uit te breiden manier, maar ziet nu nog met één laatste probleem.

ik doe nu alle hoofd onderdelen (speler, bots, level) in een apparte "klasse". en wil op die manier ook mijn bommetjes gaan plaatsen.

alleen dit laatste, de bommetjes heeft ff wat problemen. Normaal gesproken gebruik ik allemaal setTimeout's met variabelen die dan true of false zijn of een teller++ met een setTimeout om iets te "animeren". Ik wil het bommetje in dit geval na 2 seconden laten explodern (dus gewoon een document.getElementById(mijnbomid).removeChild(true) ).

Ik krijg alleen allemaal rare undefined meldingen enzo bij elke test opstelling die ik maak, nou was mijn vraag als ik met javascript prototypes werkt, hoe kan ik dit dan het beste doen?

ff een voorbeeld hoe het er nu bijzit bij de ge-reditte versie:
http://adsoft.nl/misc/Angelo/wip3/


p.s., ik gebruik een dhtml contest om van te leren, het kan zijn dat ik de namen van de javascript dingen verkeerd noem :P

  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

De methode die jij gebruikt met getElementById is niet de beste methode aangezien elke keer die getElementById weer aangeroepen moet worden en vooral bij animaties kan dit zwaar vertragend werken. Ik leg altijd de referenties naar mijn objecten vast in een variabele. Even simpel, op deze manier dus:

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
function Bal(id)
{
  this.obj = document.createElement("img");
  this.src = "test.jpg";
  this.id = id;
  this.css = this.obj.style.
  this.css.left = "10px";
  this.object = document.body.appendChild(this.obj);
}
Bal.prototype.lek = balLek;

function balLek()
{
  document.body.removeChild(this.object);
}

ballen = new Array();

// Toevoegen
volleybal  = new Bal("volleybal");
voetbal  = new Bal("volleybal");

//Verwijderen
volleybak.lek();
voetbal.lek()


En als het om veel elementen gaat gebruik ik geen voetbal of volleybal maar een globale array :)

[ Voor 5% gewijzigd door André op 06-06-2005 19:32 ]


  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
Ik vindt het voorbeeld echt super, thx, maar mijn probleem blijft eigenlijk nog, ondank dat ik jou manier gebruik.

nu krijg ik bij deze timeout:
code:
1
2
    bomb[this.bombcounter] = new Bombs("bomb").setPos(this.x, this.y);
    setTimeout('bomb[' + this.bombcounter + '].destroy()', 1000);


de melding 'bomb.0 is null or not an object' en dat op regel 1 :S in IE en in FF
bomb[0] has no proporties. Maar in die regel ervoor, die overigens wel werkt, plaats hij de bomb in bomb[this.bombcounter (die eerst 0 is)]

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je haakjes staan niet goed :) Gebruik desnoods voor de buitenste " ipv '

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
ho, uhmp got it :P

deze twee moesten los van alkaar new Bombs("bomb") en setPos(this.x, this.y); sorry mijn fout 8)7

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

semicon schreef op dinsdag 07 juni 2005 @ 09:58:
ho, uhmp got it :P

deze twee moesten los van alkaar new Bombs("bomb") en setPos(this.x, this.y); sorry mijn fout 8)7
ehm, dat ook ja 7(8)7

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1