jquery вызывает функцию по истечении времени загрузки скрипта

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

у меня есть страница с чем-то вроде:

 link
link
link
link
somethingelse(div)
  

с помощью моего скрипта я меняю ссылку в img, а после мне нужно отредактировать что-то еще….

но теперь у меня проблема .. мне нужны шнуры div, но когда я пытаюсь его получить, я получаю шнуры ДО загрузки img …. и я получаю неправильные шнуры….

как я могу запустить функцию после полной загрузки изображений?

псевдокод:

 $("a").each(function(){ replaceAtoIMG(this)}); //change <a> with <img> and add a new image loading
$("div").each(function(){ $(this).position() }); //return value BEFORE the fully completed load
  

Комментарии:

1. Легко. подождите, пока изображения не будут загружены, чтобы получить позицию. Если вы не уверены в том, как это сделать, возможно, это должен был быть ваш вопрос, однако это повторяется много раз.

2. я пытался с помощью . загрузить или готово… но я не понимаю, как это работает…

3. Ни один из этих методов вам не поможет. вам нужно будет перебирать каждое изображение и определять, когда каждое из них заканчивается. Когда все они будут закончены, вы получите позицию.

4. о, что-то вроде $(‘img’).on(‘load’, function() { if ($(‘img’) . длина == X) иначе X });

5. точно так же (игнорируя синтаксис)

Ответ №1:

 $('img').on('load', function() {
   // do whatever you want
});
  

Это должно решить, по крайней мере, вашу проблему с загрузкой.

Извините, был на работе и пользовался телефоном для stackoverflow, так что пришлось поторопиться.

Однако, если вам нужно, чтобы ваша функция применялась к каждому изображению при загрузке, вы можете обернуть свою функцию при загрузке внутри функции each() . Непроверенный, поэтому может потребоваться небольшая доработка:

 $('img').each(function(){
       $(this).on('load', function() {
   // do whatever you want  });  
 });
  

Это должно прикрепить эту функцию ко всем тегам img и запустить, когда они закончат загрузку. Затем вы можете использовать их координаты или то, чего вы не пытаетесь достичь. Ваш псевдокод меня смутил.