высота изображения с помощью jQuery в хромовой проблеме

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

1) код является менее подробным. Я не нахожу это допустимым. Некоторые динамические языки являются менее подробными, чем некоторые статические. Но F# со статическим контролем типов, но статический контроль типов там не добавляет много, если таковые имеются, код. Это неявно вводится, тем не менее, но это - другая вещь.

2) "Мой любимый динамический язык X имеет мою любимую функциональную возможность Y, поэтому динамичный лучше". Не перепутывайте функциональный и динамичный (я не могу понять, почему это должно быть сказано).

3) На динамических языках Вы сразу видите свои результаты. Новости: можно сделать это с C# в Visual Studio (с 2005) также. Просто установите точку останова, запустите программу в отладчике и измените программу при отлаживании. Я делаю это все время, и это работает отлично.

Самостоятельно, я - ярый сторонник статического контроля типов по одной основной причине: пригодность для обслуживания. У меня есть система с парой 10k строки JavaScript в нем, и любой рефакторинг, который я хочу сделать, возьмет как половина дня, так как (несуществующий) компилятор не скажет мне, что испортило то переименование переменной. И это - код, который я написал сам, IMO, хорошо структурированный, также. Я не хотел бы задачу того, чтобы быть назначенным ответственный за эквивалентную динамическую систему, которую кто-то еще записал.

я предполагаю, что буду в широком масштабе downvoted для этого, но я рискну.

12
задан Prasad 16 November 2009 в 18:10
поделиться

3 ответа

Как упоминал Джош, если изображение еще не полностью загружено, jQuery еще не узнает его размеры. Попробуйте сделать что-то подобное, чтобы убедиться, что вы пытаетесь получить доступ к его размерам только после того, как изображение было полностью загружено:

var img = new Image();

$(img).load( function() {
    //-- you can determine the height before adding to the DOM
    alert("height: " + img.height);
    //-- or you can add it first...
    $('body').append(img);
    //-- and then check
    alert($('body img').height());
}).error( function() {
    //-- this will fire if the URL is invalid, or some other loading error occurs
    alert("DANGER!... DANGER!...");
});

$(img).attr('src', "http://sstatic.net/so/img/logo.png");
9
ответ дан 2 December 2019 в 22:05
поделиться

Я предполагаю, что эта функция вызывается до завершения загрузки изображения. Можете ли вы попробовать установить задержку для функции, чтобы увидеть, действительно ли это так? В этом случае вы можете обмануть, используя таймер перед запуском функции.

Немного сложнее определить, когда изображение было загружено. Посмотрите на этот сценарий - возможно, он подойдет вам.

1
ответ дан 2 December 2019 в 22:05
поделиться

Попробуйте использовать предварительную загрузку изображений, вот тот , который я написал для ответа на другой вопрос .

0
ответ дан 2 December 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: