jquery скролл и ajax реквест
Добрый день товарищи! Есть страничка на которой распологается div, внутрь которого подгружаю содержимое ЛОГА через аякс (innerHTML). Так же в этом же диве применяю аналог скролла от jquery. Все работает отменно! но одно но, при подгрузке содержимого, скролл (jquery) как бы это сказать... величает не верное кол-во строк, а точнее кол-во строк предыдущего варианта контента дива.
собсно вот код: // Данный скрипт отвечает за подгрузку, и находится у меня в отдельном файле // ################################################################################################################## // // PAGE SHEET SCRIPT // ################################################################################################################## // /* ------------------------------------------------------------------------------------------------------------------ */ function LoadContent(PageLink, ContainerId) { var Container = document.getElementById(ContainerId); var LoadDummy = document.getElementById('load_dummy'); // div c надписью 'Загрузка...' Container.innerHTML = LoadDummy.innerHTML; var http = CreateRequestObject(); if(http) { http.open('post', PageLink); http.onreadystatechange = function() { if(http.readyState == 4) Container.innerHTML = http.responseText; } http.send(null); }else{ document.location = web_link; } } /* ------------------------------------------------------------------------------------------------------------------ */ function CreateRequestObject() { try { return new XMLHttpRequest() } catch(e) { try { return new ActiveXObject('Msxml2.XMLHTTP') } catch(e) { try { return new ActiveXObject('Microsoft.XMLHTTP') } catch(e) { return null; } } } } // ------------------------------------------------------------------------------------------------------------------ // А вот этим скриптом делаю запрос на подгрузку: // ################################################################################################################## // // ADMP SHEET SCRIPT // ################################################################################################################## // var admp_opened = 0; var admp_log_opened = 0; // ################################################################################################################## // function OpenLog(LogName, ReadData, Type){ if (LogName) admp_log_opened = LogName; else LogName = admp_log_opened; Category = 0; Data = 0; if(ReadData){ var admin_filter_find_list_handle = document.getElementById('admin_filter_find_list'); var admin_argument_line_handle = document.getElementById('admin_filter_find_line'); Category = admin_filter_find_list_handle.value; Data = admin_argument_line_handle.value; } // TEST BLOCK if (Type == 1)Type = 'find'; if (Type == 2)Type = 'filter'; // TEST BLOCK switch(LogName){ case 1: LoadContent('mydevlog.php?log=personal&cat='+Category+'&data='+Data+'&type='+Type, 'admp_logarea'); break; case 2: LoadContent('mydevlog.php?log=admin&cat='+Category+'&data='+Data+'&type='+Type, 'admp_logarea'); break; case 3: LoadContent('mydevlog.php?log=user&cat='+Category+'&data='+Data+'&type='+Type, 'admp_logarea'); break; } $(function() { $('#admp_logarea').jScrollPane({ showArrows:false, scrollbarWidth: 10, arrowSize: 0 }); }); } // ------------------------------------------------------------------------------------------------------------------ // function ShowADMPWindow(){ if(!admp_opened){ var admp_window_handle = document.getElementById('admp_window'); admp_window_handle.style.opacity = 0; admp_window_handle.style.display = 'block'; for (var alpha = 0; alpha <= 10; alpha++){ setTimeout('AlphaSet('+alpha+')', 10*alpha); } admp_opened = 1; $(function() { $('#admp_logarea').jScrollPane({ showArrows:false, scrollbarWidth: 10, arrowSize: 0 }); }); } } // ------------------------------------------------------------------------------------------------------------------ // function HideADMPWindow(){ var admp_window_handle = document.getElementById('admp_window'); admp_window_handle.style.display = 'none'; admp_opened = 0; } // ------------------------------------------------------------------------------------------------------------------ // function AlphaSet(AlphaValue) { var admp_window_handle = document.getElementById('admp_window'); admp_window_handle.style.opacity = AlphaValue/10; } // ------------------------------------------------------------------------------------------------------------------ // при открытии странички происходит следующее: $(function() { $('#admp_logarea').jScrollPane({ showArrows:false, scrollbarWidth: 10, arrowSize: 0 }); var admp_window_handle = document.getElementById('admp_window'); admp_window_handle.style.display = 'none'; OpenLog(1,0,0); }); При работе с логом вызываю OpenLog(*,*,*) с параметрами. В общем вот такая ерунда. Помогите ктонить, я чувствую что ответ прост, но голова просто уже опухает. Кому не сложно.... ай нид хелп :help: Вот скрин чтоб понятнее как бы было ![]() Да и еще один нюансик, при первой загрузке (которая происходить из тела странички (не при нажатии на кнопочку)) все норм! показывает нужное кол-во строк с пропорциональным скроллом. Прямо незнаю что делать, буквально бьюс головой о настольную лампу. |
Вопрос решен! сделал вот так:
function OpenLog(LogName, ReadData, Type){ if (LogName) admp_log_opened = LogName; else LogName = admp_log_opened; Category = 0; Data = 0; if(ReadData){ var admin_filter_find_list_handle = document.getElementById('admin_filter_find_list'); var admin_argument_line_handle = document.getElementById('admin_filter_find_line'); Category = admin_filter_find_list_handle.value; Data = admin_argument_line_handle.value; } // TEST BLOCK if (Type == 1)Type = 'find'; if (Type == 2)Type = 'filter'; // TEST BLOCK switch(LogName){ case 1: LoadContent('mydevlog.php?log=personal&cat='+Category+'&data='+Data+'&type='+Type, 'admp_logarea'); break; case 2: LoadContent('mydevlog.php?log=admin&cat='+Category+'&data='+Data+'&type='+Type, 'admp_logarea'); break; case 3: LoadContent('mydevlog.php?log=user&cat='+Category+'&data='+Data+'&type='+Type, 'admp_logarea'); break; } setTimeout('RedrawScroll()', 10); } в то время как: function RedrawScroll() { $(function() { $('#admp_logarea').jScrollPane({ showArrows:false, scrollbarWidth: 10, arrowSize: 0 }); }); } Таким образом все норм прорисовывается :) Спасибо за помощь! З.Ы. -Самое удивительное, простой вызов RedrawScroll() не дает такого результата, только если через задержку, при том любой длины, будь то хоть 1 милисекунда. Сырость какая то :) (по времени). |
Часовой пояс GMT +3, время: 14:38. |