probleem met timer / click event

Pagina: 1
Acties:

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
Beste mensen,

Ik ben bezig om een soort slideshow achtige software te maken, en loop daarin tegen een probleem aan.

ik heb een next knop waarmee je naar volgende foto toe kan, en ik wil ook een functionaliteit inbouwen dat dit automatisch gebeurd (na xx sec.)

hier een stukje van me code:
JavaScript:
1
2
3
4
5
6
7
if (current != files.length-1) {
    handle.nextButton.onclick = function(e) { setMedia(this.parentNode, files[current+1], files) };
    setTimeout("setMedia(" + handle + ", '" + files[current+1] + "', " + files + ")",3000);
} else {
    handle.nextButton.onclick = "";
    setTimeout("setMedia(" + handle + ", '" + files[0] + "', " + files + ")",3000);
}

handle is mijn slideshow divje
nextbutton is het knopje
setMedia is de functie die het plaatje laad
files is een array waar de locaties van de foto's in staan

het probleem is dus dat ik geen manier kan vinden om de variablen (files en handle) via die timer aan die functie kan voeren.

Ik dacht er aan om een click te sturen naar de knop, maar heb geen idee of dat uberhaupt wel kan in JS.

iemand een tip?

This message was sent on 100% recyclable electrons.


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
niemand een idee?

This message was sent on 100% recyclable electrons.


  • Padschild
  • Registratie: September 2004
  • Laatst online: 28-11-2020
waarom moet je een variabele meesturen? Je kunt toch vanuit een slideshow object gewoon next foto pakken? Als het goed is weet je vast wel welke foto er geladen is.. Gewoon een functie maken met nextSlide(); oid.

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
Padschild schreef op zondag 01 juli 2007 @ 19:52:
waarom moet je een variabele meesturen? Je kunt toch vanuit een slideshow object gewoon next foto pakken? Als het goed is weet je vast wel welke foto er geladen is.. Gewoon een functie maken met nextSlide(); oid.
ik werk momenteel niet echt object georienteerd.

ik gebruik een paar objecten (een event en nog eentje), maar handle (mijn slideshow divje) is geen object. (is dat zo?)

zou wel makkelijk zijn wanneer ik een keer zeg:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
handle.slides = <mijn array met plaatjes>;
handle.nextSlide = nextSlide();

function nextSlide() {
/*
doe ding
*/
}

//waarna ik:

handle.nextSlide()  //kan aanroepen.


maar werkt dit zoals ik het nu zeg?

This message was sent on 100% recyclable electrons.


Verwijderd

JavaScript:
1
2
3
4
5
6
setTimeout("NextSlide()", 5000);

function NextSlide()
{
    // Do your job.
}

en
HTML:
1
<input onclick="NextSlide();" type="button" value="ClickMe"/>

zou gewoon moeten werken.

of ik moet het verkeerd begrepen hebben... :X

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
ja daar was ik al, maar in jouw voorbeeld ga je er vanuit dat ik 1 array hebt met plaatjes die globaal gedefineerd is, zodat ik erbij kan in mijn 'nextslide' functie.
Ik heb echter meerdere slideshow 'objecten', die elk hun eigen array hebben, die (op het moment) doorgegeven worden via functies.

Ik zal vanavond eens kijken of ik zegmaar dit kan doen:

JavaScript:
1
2
3
4
var slideshowObj = document.getElementById("slideshowobj3");  //3de slideshow object
slideshowObj.slides = Array()... //hier dus array met plaatjes
slideshowObj.slidecounter = 0;
slideshowObj.nextslide = function() { this.slidecounter++; this.currentSlide = this.slides[this.slidecounter]; }

This message was sent on 100% recyclable electrons.

Pagina: 1