2011-12-13 3 views
1

Я пытаюсь загрузить изображения через ajax-вызов в jquery, используя This here. он вообще не работает, и я не уверен, что я делаю неправильно, я использую firebug и не вижу никакого запроса. Любая помощь будет оценена по достоинству.загружать внешние изображения с jquery не работает

var img = $('<img />').attr('src', thumbnailUrl).load(function() { 
        if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) { 
         alert('broken image!'); 
        } else { 
         $("#imageHolder").append(img); 
        } 

       }); 
+0

Является ли ваш эскиз действительным URL? Можете ли вы скопировать его значение из firebug и пойти на него? Если да, не могли бы вы воссоздать это на http://jsfiddl.net? Это облегчит диагностику. – JesseBuesking

+0

Кажется, он работает правильно для меня. Какую ценность вы используете для thumbnailUrl? Вы помещаете это в функцию $ (document) .ready? –

+0

Похоже, что это не добавление к imageHolder. Я отлаживал firebug, и это выглядит прекрасно, но просто не добавляется. и да изображение существует – user516883

ответ

2

Вы хотите, чтобы установить обработчик load событий перед установкой src так, что обработчик load событие будет окончательно установить до того как изображение фактически загружает:

var img = $('<img />').load(function() { 
    $("#imageHolder").append(img); 
}).error(function() { 
    alert('broken image!'); 
}).attr('src', thumbnailUrl); 

Вот демо: http://jsfiddle.net/Y2SWB/

Уведомление Я также добавил вызов .error(function() {...}) вместо обработки ошибок в обработчике событий load.

+0

Похоже, что это не прилагается к imageHolder. Я отлаживал firebug, и это выглядит прекрасно, но просто не добавляется. – user516883

+0

@ user516883 Он работает в демо; У вас есть несколько элементов с идентификатором imageHolder? Или это делается в цикле? – Jasper

+0

Элемент вызывает функцию, затем эта функция открывает диалоговое окно, открывая функцию диалога, я хочу загрузить миниатюру, я установил некоторые предупреждения в вашем коде, а var img возвращает [объект объекта]. А также он не вызывает ajax, ошибок нет. Это странно. – user516883