the first time the code is executed it correctly produces:
load complete
but the 2nd time it produces:
load complete
load complete
the 3nd time it produces:
load complete
load complete
load complete
etc... so the 20th time the load function completes the call back function gets fired 20 times.
$('#image-tag').load(function () {
console.log("load complete");
});
}).attr('src', 'image.jpg').appendTo('#main');
any idea what's causing the call back function to repeat/increase like this?
It woulds like you're calling this inside a click handler or something else, this binds a new .load()
handler each time. Either bind the .load()
once, or use .one()
, like this:
$('#image-tag').one('load', function () {
console.log("load complete");
});
That's because you are adding another event handler every time you run that code.
If you want to append an image tag into an element, you should not use an image that already is in the page. Create a new image tag instead:
$('<img/>').load(function () {
console.log("load complete");
}).attr('src', 'image.jpg').appendTo('#main');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With