0

ブラウザを初めて起動すると、現在、画像の幅を取得する際に問題があります。毎回正しい幅ではなく値 0 を取得します。ブラウザを起動して f5 でページを更新すると、正しい値が得られます。

どうすればその問題を処理できますか? ここに私のコード部分:

$(document).ready(
function () {
    ...
        function () {            
            img = new Image();
            img.src = 'images/flags/medium/' + flag + '.png';
            img.onload = $(function() {
                if(img.width > size[0]) {
                    size[0] = img.width;
                }
                if (i % 2 === 0) {
                    $('#list1').append(
                    $('<li id=item' + j + '>'));
                    $('#item' + j).append(img);
                    $('#item' + j).append(
                            $('<li>').append(company).addClass('company')
                    );
                    i = 1;
                } else {
                    $('#list2').append(
                    $('<li id=item' + j + '>'));
                    $('#item' + j).append(img);
                    $('#item' + j).append(
                            $('<li>').append(company).addClass('company')
                    );
                    i = 0;
                }
                j++;
            });

        }

size[0]Browser の最初の起動時、0更新後は正しい値になります。なんで?あいさつ。

編集 まあ、f5を叩くと問題が発生することもあるようです。

4

1 に答える 1

0

変化する: img.onload = $(function() {

に:img.onload=(function() {

最初のロードでグーグルからのランダムな画像でうまく動作するようです。

jsfiddle

于 2012-07-10T09:09:32.610 に答える