0

次の 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'] ?>';   
}

ただし、グラフの高さは描画されるまで不明です。コンテナの高さをコンテナの高さに設定してロードした後にこの高さを取得する方法があるかどうか疑問に思っていました。

私は置くことを考えました:

.css("height", THE_IMAGE_HEIGHT)

onload 関数で、この画像の高さを見つけるのに苦労しています。デバッグは、(onload 内で) 次のことを示しています。

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

最後の this.height は、高さが 425px に設定されたコンテナーを明確に参照しています。

高さを取得する方法についてのアイデアはありますか?

ありがとう!

4

1 に答える 1

1
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.
    })
};

それを試してみて、何が起こったのか教えてください。また、コンソールログをチェックして、オブジェクトがイメージ要素であるかどうかを確認してください。

于 2010-07-30T13:53:40.400 に答える