Не удается получить ajax - высота и ширина загружаемого изображения с помощью jquery - PullRequest
1 голос
/ 22 апреля 2010

Я загружаю изображение через AJAX, вот так ...

function load_image(image_href) {

    var img = new Image();
    $(img).load(function () { 
        $(this).hide(); $('#a_box').append(this); 
        $(this).fadeIn(); 
        }, gallery_image_load_complete()
    ).error(function () {
    }).attr('src', image_href);

}

function gallery_image_load_complete() {
    conslole.log('complete')

     $('#a_box img').height(); //wrong numbers, as though the image is partially loaded
     $('#a_box img').width(); //wrong numbers
}

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

Может кто-нибудь помочь мне, пожалуйста?

Ответы [ 3 ]

3 голосов
/ 22 апреля 2010

gallery_image_load_complete () необходимо вызывать в обработчике события загрузки:

function load_image(image_href) {

    var img = new Image();
    $(img).load(function () { 
        $(this).hide(); $('#a_box').append(this); 
        $(this).fadeIn(); 
        gallery_image_load_complete(); // now inside the load event handler
    }).error(function () {
    }).attr('src', image_href);

}
2 голосов
/ 22 апреля 2010

Вы знаете, что атрибуты высоты и ширины сообщают вам размер объекта изображения в DOM, а не сами файлы базового изображения, верно?

1 голос
/ 22 апреля 2010

У меня сейчас нет удобного кода, но когда мне понадобился размер произвольного изображения, чтобы решить, как его представить, я предварительно загружаю скрытый элемент и получаю размер элемента @ загружен. затем делайте что хотите и размещайте изображение там, где оно необходимо.

хорошо работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...