Короткая версияКогда DOM готов следующий jQuery.after - Plupload
После вызова jQuery.after
для вставки HTML, как я знаю, когда DOM готов?
Длинная версия
Я получаю Plupload DropZones от вызова Ajax и с помощью jQuery.after вставить их. Когда я затем вызываю mypluploader.init()
для инициализации Plupload, он терпит неудачу из-за того, что DOM не готов (по-видимому). Вот что я делаю:
- загружает страницу
- Пользователь щелкает Редактировать
- Я использую Ajax для получения зон Plupload и вставьте возвращаемый HTML с jQuery.after
- Я тогда называть
mypluploader.init()
инициализировать Plupload - Я получаю следующее сообщение об ошибке:
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);
});
- ваш '$ .get', завернутый в обработчик * document.ready *? Должно работать нормально, если оно – charlietfl
Да, оно завернуто в document.ready –