jquery .width () проблема с хромом и сафари - PullRequest
13 голосов
/ 26 октября 2010

Я установил в css высоту изображения на определенное значение, а ширина изменяется автоматически, чтобы сохранить соотношение сторон.Я использую JQuery функцию .width (), чтобы получить ширину изображения после того, как CSS изменил размер изображения.в Firefox и Internet Explorer это прекрасно работает, но в Chrome и Safari возвращаемая ширина всегда равна 0 для каждого изображения.код, который я использую, является следующим:

var total=0; 
var widthdiv=0;
$(function(){
    $('.thumb').each(function(){
       widthdiv=$(this).width();
       total+=widthdiv;
       alert(widthdiv); //added so i can see what value is returned.
    });
});

и CSS для изображений:

#poze img{
    height:80px;
    width:auto;
    border:0px;
    padding-right:4px;    
}

1 Ответ

37 голосов
/ 26 октября 2010

В document.ready (которые вы используете в настоящее время) изображения могут загружаться или не загружаться, если они не находятся в кэше, они, вероятно, не загружены . Вместо этого используйте событие window.onload , когда изображения загружены , например:

var total=0; 
$(window).load(function() {
  $('.thumb').each(function() {
    total += $(this).width();
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...