Почему jQuery может рассчитывать ширину на сервере, а не при локальном запуске?

0

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

$("#off-screen").load(function() {
    var naturalWidth = this.width;   
    var naturalHeight = this.height;
});

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

На сервере: http://kthornbloom.com/smoothzoom/

Локальный (загрузка из Github, и вы увидите, что изображения не отображаются правильно в Chrome): https://github.com/kthornbloom/Smoothzoom

Почему один и тот же точный код работает на сервере, но не локально?

  • 1
    Вы запускаете это в Chrome? Вы не можете выполнять запросы AJAX в Chrome без сервера.
  • 0
    Вы загружаете все необходимые файлы или сценарии?
Показать ещё 7 комментариев
Теги:
width

1 ответ

0
Лучший ответ

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

Это работает на моей машине:

$("#off-screen").load(function() {                       

    $('#lightwrap img').css({
        width: width,
        height: height,
        top: (offset.top - amountScrolled),
        left: offset.left
    });

    imageSizer();

    $('#lightbg').fadeIn();

    event.preventDefault(); 

});
  • 0
    Работает отлично и полностью имеет смысл

Ещё вопросы

Сообщество Overcoder
Наверх
Меню