2015-03-23 2 views
0

Короткая версияКогда DOM готов следующий jQuery.after - Plupload

После вызова jQuery.after для вставки HTML, как я знаю, когда DOM готов?

Длинная версия

Я получаю Plupload DropZones от вызова Ajax и с помощью jQuery.after вставить их. Когда я затем вызываю mypluploader.init() для инициализации Plupload, он терпит неудачу из-за того, что DOM не готов (по-видимому). Вот что я делаю:

  1. загружает страницу
  2. Пользователь щелкает Редактировать
  3. Я использую Ajax для получения зон Plupload и вставьте возвращаемый HTML с jQuery.after
  4. Я тогда называть mypluploader.init() инициализировать Plupload
  5. Я получаю следующее сообщение об ошибке: TypeError: Cannot read property 'style' of null

код в резюме:

$.get('/plupload-zones.html', function(theDropZoneHTML) { 
     // theDropZoneHTML: <div id='dropzones'>...</div> 
     obj.after(theDropZoneHTML); 
     mypluploader = new plupload.Uploader({..., drop_element: 'dropzones', ...}); 
     mypluploader.init(); 
     //Boom! It fails 
}); 

Если изменить шаг 4, чтобы включать в себя SetTimeout в течение 2 секунд, работает нормально без ошибок:

$.get('/plupload-zones.html', function(theDropZoneHTML) { 
     // theDropZoneHTML: <div id='dropzones'>...</div> 
     obj.after(theDropZoneHTML); 
     setTimeout(function() { 
      mypluploader = new plupload.Uploader({..., drop_element: 'dropzones', ...}); 
      mypluploader.init(); 
      //Bingo! It works 
     }, 2000); 
}); 
+0

- ваш '$ .get', завернутый в обработчик * document.ready *? Должно работать нормально, если оно – charlietfl

+0

Да, оно завернуто в document.ready –

ответ

0

Aha, задержка была от углового повторителя, который также на этой странице. В ожидании завершения Углового повтора проблема решена: ng-repeat finish event

Смежные вопросы