[jQuery] Callbacks stapelen zich op

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Via jQuery heb ik een load() event gebonden aan een IMG element. Als de afbeelding geladen is, zal er een animate() plaats vinden om een canvas te animeren zodat deze net wat groter is dan de afbeelding. Als deze animatie afgelopen is (250 ms) zal er een functie aangeroepen worden die weer een functie aanroept met wat parameters.

Dit werkt prima, tot ik de src van die afbeelding wijzig, een afbeelding geladen wordt en de load() functie weer uitgevoerd wordt. Alleen, telkens als deze load() functie uitgevoerd wordt, stapelen de functies zich op. Hij vervangt de oude functie niet, maar voegt de nieuwe erbij. Dus na 5 keer de src veranderd te hebben, wordt 5 x een functie aangeroepen (zichtbaar doordat de alert() 5x getoond wordt). Wat doe ik fout?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$('#ab-image').attr({
    src: url,
    alt: alt
}).load(function() {
    $('#ab-viewer').animate({
        height: this.height,
        width: this.width,
        left: $(window).width() / 2 - this.width / 2,
        top: $(window).height() / 2 - this.height / 2
    }, 400, function() {
        alert('test); // deze wordt bij elke geladen afbeelding X aantal keer getoond, waar X staat voor het aantal keer dat deze callback van de load functie aangeroepen is
        $.fn.ab.image.fade_in(id, options, alt);
    })
})

[ Voor 3% gewijzigd door Verwijderd op 28-11-2009 13:08 ]


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

http://docs.jquery.com/Events/unbind de load op je image eerst. :)

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tnx, niet aan gedacht!

Bij een show() of fadeIn() gebeurd het stapelen van de functies niet. Hoe kan dit?

Acties:
  • 0 Henk 'm!

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Dat zijn geen listeners.