JavaScript: регулировка высоты контейнера изображения в соответствии с динамической высотой изображения после загрузки изображения? - PullRequest
0 голосов
/ 30 июля 2010

Я загружаю графики с помощью следующей функции JavaScript:

function loadMCorCBGraph(self,surveyID,questionID,varID) {
    var img = new Image();

    img.onload = function() {
        $(self).parents().parents().siblings(".graph_container")
        .empty().append(img);
    };

    img.src = 'drawGraph.php?type=surveys_report_MC_or_CB&surveyID=' + surveyID + '&questionID=' + questionID +
        (varID != null ? '&varID=' + varID : '') + '&companyID=<?php echo $_SESSION['companyID'] ?>';   
}

однако высота графика неизвестна, пока он не будет нарисован. мне было интересно, есть ли способ получить эту высоту после загрузки и установить высоту контейнера равной высоте cet.

я думал о сдаче:

.css("height", THE_IMAGE_HEIGHT)

в функции загрузки, но у меня проблемы с поиском высоты изображения. отладка показывает, что (внутри загрузки):

$(this).height() = 0
img.height = ReferenceError: img is not defined
this.height = 425

теперь последний, this.height, явно ссылается на контейнер, высота которого составляет 425 пикселей.

есть идеи, как получить высоту?

спасибо!

1 Ответ

1 голос
/ 30 июля 2010
img.onload = function() {
    $Container = $(self).parents().parents().siblings(".graph_container");

    $Container.empty().append(img);

    this.find('img').each(function(){
        //Dynamically check each image
        if(this.height > 400)
        {
            $(this).height(400);
        }
        console.log(this); //Should see object with attribs.
    })
};

Попробуй и скажи мне, что происходит, также проверь свой журнал консоли, чтобы увидеть, является ли Объект элементом изображения.

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