Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2012, 08:09
Аватар для antserg
Аспирант
Отправить личное сообщение для antserg Посмотреть профиль Найти все сообщения от antserg
 
Регистрация: 14.05.2011
Сообщений: 61

ajax, неверное указание ширины блока
Здравствуйте. Есть простенький слайдер по просмотру изображений. Вот часть кода. При клике по 1/3 области с изображением показывается предыдущее изображение из текущего альбома. Плюс 2 алерта.

$('#imagebox-leftblock').click(function(e){
      if (e.pageX>=ltLeftImageboxLeft && e.pageX<=brLeftImageboxLeft*0.3 && e.pageY>=ltTopImageboxLeft && e.pageY<=brToptImageboxLeft){
        $.ajax({
          url: 'getPhotosFromAlbum.ajx.php',
          data: {idPhoto:idPhoto, key:2},
          type: 'post',
          success: function(data){
            if(data['idPhoto'])
              idPhoto=data['idPhoto'];
            if(data['prevExtFile'])
              extFile=data['prevExtFile'];
            var pathNextPhoto='i/albums/'+idPhoto+'.'+data['prevExtFile'];
            $('#imagebox-leftblock img:eq(0)').attr('src', pathNextPhoto);
            $('#imagebox-leftblock').append('<p id="photosCount" class="colorWhite"></p>');
            $('#photosCount').html(data['numberCurrentPhoto']+' из '+data['countPhotos']);
            $('#photosCount').css('position', 'absolute');
            $('#photosCount').css('top', $('#imagebox-leftblock').height()-$('#photosCount').height());
            $('#photosCount').css('left', '20px');
            alert($('#imagebox-main-img').width());
          },
          dataType:"json"
        });
        alert($('#imagebox-main-img').width());
      }
...


Вот скриншот, что получилось:


Как видно, в алерте ширина 225, хотя на самом деле должна быть 243px. А 225 - это ширина предыдущего (прошлого) изображения. Если я просмотрю следующее изображение, то в алерте будет 243, хотя на самом деле ширина изображения будет уже другая. То есть jQuery указывает ширину изображения с отставанием на 1 изображение.

С чем это может быть связано? Судя по всему из-за аджакса, с таким раньше никогда не сталкивался.
Ответить с цитированием
  #2 (permalink)  
Старый 24.07.2012, 09:25
Аватар для zlodeeev
Кандидат Javascript-наук
Отправить личное сообщение для zlodeeev Посмотреть профиль Найти все сообщения от zlodeeev
 
Регистрация: 11.07.2012
Сообщений: 113

Так а второй алерт что говорит?
Ответить с цитированием
  #3 (permalink)  
Старый 24.07.2012, 09:30
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

antserg,
Делать Анализ ширины нун не по событию Aякса, а позже, при появлении onloaд данного Изо
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2012, 09:32
Аватар для zlodeeev
Кандидат Javascript-наук
Отправить личное сообщение для zlodeeev Посмотреть профиль Найти все сообщения от zlodeeev
 
Регистрация: 11.07.2012
Сообщений: 113

Ну у него вон есть еще один алерт, сразу после аякса. Только, что он говорит не известно
Ответить с цитированием
  #5 (permalink)  
Старый 24.07.2012, 09:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Сообщение от zlodeeev
Ну у него вон есть еще один алерт, сразу после аякса. Только, что он говорит не известно
Чо толку то - событие - load. не навешивается на img
А еще лучше иметь onload="Funk()" уже в теге подгружаемой картинки
Ответить с цитированием
  #6 (permalink)  
Старый 24.07.2012, 17:00
Аватар для antserg
Аспирант
Отправить личное сообщение для antserg Посмотреть профиль Найти все сообщения от antserg
 
Регистрация: 14.05.2011
Сообщений: 61

Извините, что долго не отвечал. Не было рядом компьютера.
zlodeeev,
Второй алерт говорит то же самое, что и первый.
Deff,
Вашу логику понял, буду копать в этом направлении.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
слайд панели tadjik1 Элементы интерфейса 22 02.04.2012 16:13
Изменение ширины блока каждый n-секунд AntoXa987 Элементы интерфейса 7 20.01.2012 16:12
Как сверстать три блока одинаковой мах и min ширины? TicTac (X)HTML/CSS 6 06.06.2011 16:44
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 15:21