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 изображение. С чем это может быть связано? Судя по всему из-за аджакса, с таким раньше никогда не сталкивался. |
Так а второй алерт что говорит?
|
antserg,
Делать Анализ ширины нун не по событию Aякса, а позже, при появлении onloaд данного Изо |
Ну у него вон есть еще один алерт, сразу после аякса. Только, что он говорит не известно
|
Цитата:
А еще лучше иметь onload="Funk()" уже в теге подгружаемой картинки |
Извините, что долго не отвечал. Не было рядом компьютера.
zlodeeev, Второй алерт говорит то же самое, что и первый. Deff, Вашу логику понял, буду копать в этом направлении. |
Часовой пояс GMT +3, время: 17:19. |