в первый раз, когда код выполнен, он правильно производит:
завершенная загрузка
но в 2-й раз это производит:
завершенная загрузка
завершенная загрузка
3nd время это производит:
завершенная загрузка
завершенная загрузка
завершенная загрузка
и т.д.... так в 20-й раз, когда функция загрузки завершается, вызов назад функционируют, становится запущенным 20 раз.
$('#image-tag').load(function () {
console.log("load complete");
});
}).attr('src', 'image.jpg').appendTo('#main');
какая-либо идея, что вызывает вызов назад, функционирует для повторений/увеличивания как это?
Это потому, что вы добавляете еще один обработчик событий каждый раз, когда запускаете этот код.
Если вы хотите добавить тег изображения к элементу, вы не должны использовать изображение, которое уже есть на странице. Вместо этого создайте новый тег изображения:
$('<img/>').load(function () {
console.log("load complete");
}).attr('src', 'image.jpg').appendTo('#main');
Это похоже на то, как вы вызываете это внутри обработчика кликов или чего-то еще, это связывает new .load ()
обработчик каждый раз. Либо привяжите .load ()
один раз, либо используйте .one ()
, например:
$('#image-tag').one('load', function () {
console.log("load complete");
});