[Javascript]script blijft lopen na clear interval FF

Pagina: 1
Acties:

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben echt al een tijd bezig(zie tijd) maar kom er niet meer uit 8)7

Ik heb een script dat met een bepaalde interval dezelfde functie moet uitvoeren zolang de div nog niet de gewenste grote heeft.
dus
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var interval;
functie test(e)
{
   if (div.size < 200px)
   {
      // maak div groter
      interval = setInterval("testje()",1000);
   }
   else
   {
     clearInterval(interval);
     e.cancelBubble = true;
     e.returnValue = false;      
   }
}

je zou zeggen dat na de clearInterval het script 'stopt' of tewel de functie niet meer word aangeroepen. Ik merkte dat in IE en FF dat niet klopt. De browser blijft in taskmanager zo'n 40 a 50% bezig. Daarom heb ik na clearInterval die andere 2 regels toegevoegd.
In IE werkt dat perfect maar in fireFox niet.

Ik kom er niet meer uit. Hoe kan ik dat e.cancelBubble = true en e.returnValue = false ook werkend krijgen in FF.
Ik kom er niet meer uit _/-\o_

[ Voor 0% gewijzigd door Jochemmol op 15-06-2008 02:19 . Reden: code tags toegevoegd ]

Jochemmol


Verwijderd

Is dit pseudo-code? Anders snap ik niet hoe jij denkt dat if (div.size < 200px) ooit zou kunnen werken. Zo niet, debug dat stuk dan even en dan zul je zien dat die conditie nooit zal slagen.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Als het geen pseudocode is zou zowel IE als Firefox op z'n muil gaan op een parse error (iets met unexpected chars 'px', of idd unknown variable 'div'). Dus erm post even de originele code want hier kunnen we niets mee.

[ Voor 7% gewijzigd door curry684 op 15-06-2008 12:03 ]

Professionele website nodig?


  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ja dit is voorbeeld code omdat de daadwerkelijke code lastiger is en niet het belangrijkste is van de vraag.
Het gaat om de aanroep van de interval die oneindig blijft lopen.
Dus de eventuele interval is afhankelijk van een if statement.
Wat er in de functie zelf gebeurt is niet belangrijk.

Jochemmol


  • Johnny
  • Registratie: December 2001
  • Laatst online: 18-11 09:51

Johnny

ondergewaardeerde internetguru

Volgens mij overschrijf je steeds je bestaande interval variable met een nieuwe interval waardoor je een referentie naar de vorige verliest en clear je alleen de laatste.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
@Jonny
Bedankt _/-\o_ Ik bedacht me dat net opeens ook en dat blijkt te werken.
ik maak nu eers mijn interval var null en check elke keer als ik de functie aanroep of de intervall null is. Dit is dus alleen de eerste keer. En dan kan ik hem ook stoppen.

Bedankt voor je opmerking. Mijn probleem is eingelijk opgelost :D

Jochemmol


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Het lijkt mij dat als je setInterval op een uberhaupt logischer plek zet dit hele probleem er nooit geweest was?

{signature}


  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
tja, Ik ben nu nog aan het testen maar wat ik wil doen is een object maken met een start timer en een stop timer.

Dus ik start de timer die roept steeds de functie aan en stop de timer als de if statement true opleverd. :)

Jochemmol

Pagina: 1