[jQuery] Animatie-stack probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb in een website die ik aan het ontwikkelen ben een klein issue...

Ik heb een menu met 5 buttons. Als er op een button wordt geklikt, dan verdwijnen er 3 divs van het scherm, wordt de inhoud gewijzigd en komen ze vervolgens weer tevoorschijn. Dit proces duurt ongeveer een seconde.

Als een gebruiker nu heel snel op de menuitems zou klikken, dan wordt de stack gevuld, wat resulteert in een animatie die alles achter elkaar doet, is nogal onoverzichtelijk.

Is er handigheidje (ik heb stop() al geprobeerd...maar dit werkt niet...) om ervoor te zorgen dat ik dit niet krijg. Misschien kan ik tijdelijk de menuknoppen disablen? Ik heb al geprobeerd om
code:
1
$("#menu a").click(function(){return false;});

in mijn code te zetten, maar die reageert niet. Kan gewoon doorklikken...

Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 11:21
Als je 2 keer achter elkaar een functie bind aan de onClick van een element, is jQuery slim genoeg om hem niet te overschrijven, maar er aan toe te voegen.

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 14-09 14:15
Buiten het feit dat dit in Webdesign hoort, zie de jQuery documentatie: http://api.jquery.com/animated-selector/

JavaScript:
1
2
3
if($("#id:animated")) {
      console.log('test?');
}

Wat je anders ook kunt doen indien het geen animate is even het event unbinden en daarna weer opnieuw toevoegen.

[ Voor 4% gewijzigd door Manuel op 09-12-2010 13:06 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

Je kunt :animated gebruiken, of zelf natuurlijk even een boolean bijhouden of je animatie loopt.

stop(true,true) zou ook moeten kunnen werken, al moet je dat ergens goed in zien te passen. Voordeel is dat je dan niet elke keer je menu voor een seconde disabled.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bosmonster schreef op donderdag 09 december 2010 @ 13:27:
Je kunt :animated gebruiken, of zelf natuurlijk even een boolean bijhouden of je animatie loopt.

stop(true,true) zou ook moeten kunnen werken, al moet je dat ergens goed in zien te passen. Voordeel is dat je dan niet elke keer je menu voor een seconde disabled.
Thnx, dit was de oplossing. Ik heb nu inderdaad een boolean global die bijhoudt of je mag klikken...

Gelijk nog een vraagje:
Ik heb een div met een aantal links erin. Klikken op een link zou ervoor moeten zorgen dat er een animatie van de div's voordoet, net als bij de menuitems (eigenlijk is deze werking hetzelfde). Bij de menu-items zijn ze wel betrouwbaar (dwz er wordt geen link gevolgd, maar er speelt een animatie en verder niets...).
Echter in de div zijn deze links niet betrouwbaar. De ene keer wordt de animatie gedaan, terwijl de andere keer de pagina doorklikt naar andere pagina. De "return false" op het click-gebeuren lijkt niet te werken.

Mijn code:
code:
1
2
3
4
$("#menu a, .content li a").click(function(){       
  hideContent($(this).attr('href')); // deze zorgt voor de animatie
  return false;
});


EDIT: dit gebeurt pas nadat de animatie minimaal 1 keer is geweest...kan het liggen aan de document.ready()?

[ Voor 4% gewijzigd door Verwijderd op 09-12-2010 15:27 ]


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 14-09 14:15
Verwijderd schreef op donderdag 09 december 2010 @ 15:23:
Ik heb een div met een aantal links erin. Klikken op een link zou ervoor moeten zorgen dat er een animatie van de div's voordoet, net als bij de menuitems (eigenlijk is deze werking hetzelfde). Bij de menu-items zijn ze wel betrouwbaar (dwz er wordt geen link gevolgd, maar er speelt een animatie en verder niets...).
Echter in de div zijn deze links niet betrouwbaar. De ene keer wordt de animatie gedaan, terwijl de andere keer de pagina doorklikt naar andere pagina. De "return false" op het click-gebeuren lijkt niet te werken.
Kijk hier eens naar: http://api.jquery.com/event.preventDefault/ :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oplossing:

het gebeurde doordat er een content-wijziging van de div plaatsvond. Daarna moest ik dus weer de mouseclick opnieuw instellen...

Dank voor alle hulp!

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-09 08:45

Bosmonster

*zucht*

Ipv elke keer de events opnieuw te koppelen kun je ook delegate() gebruiken :)
Pagina: 1