Как получить фактическую ширину и высоту изображения после загрузки в плагине colorbox? - PullRequest
2 голосов
/ 09 января 2012

Я открываю вид MVC в colorbox.Это представление загружает изображение, на которое я позволяю пользователю добавлять аннотации.Перед тем, как мой плагин аннотации сработает и отобразит холст, мне нужно знать ширину и высоту загруженного изображения.Это устанавливает размер холста.

Я могу получить ширину и высоту изображения просто отлично в FF, Chrome, Opera.Но в IE8 я всегда получаю ширину и высоту изображения как 0

Есть ли кто-нибудь, кто может помочь мне получить размер изображения после загрузки изображения?

Вот как я вызываю colorbox дляоткрыть мое представление MVC:

<a href="site/photos/album/1234" class="notes colorbox"></a>

Это представление:

<div id="dvImg">
    <img id="imgAnnotate" src="path/abc.jpg" />
</div>

$(function () {
    $("#imgAnnotate").load(function () {
        Width = this.width;
        Height = this.height;
        alert('W=' + Width + ' H=' + Height); <-- IE shows as W=0 H=0
    });
});

Я также пробовал подключаемый модуль imagesLoaded, но не работает с colorbox:

$(function () {
    var $dvImg = $('#dvImg');
    function loopImages($images) {
        $images.each(function () {
            alert('h6=' + $(this).height() + ' w6=' + $(this).width()); //FF says 0
            alert('h7=' + this.height + ' w7=' + this.width); //FF OK!!! not IE
        });
    }

    $dvImg.imagesLoaded(function ($images) {
        loopImages($images);
    });
});

Еще один момент: $(window).load() в поле зрения не стреляет вообще.Может быть потому, что он загружен в colorbox?

В любом случае, это кажется очень сложным делом !!

1 Ответ

0 голосов
/ 13 января 2012

попробуйте

var Width = $(this).css("width");
var Height = $(this).css("height");
...