iScroll + jQuery Mobile -> Проблема с позицией прокрутки в динамическом просмотре списка - PullRequest
1 голос
/ 29 января 2012

У меня динамически обновляемый просмотр списка. Я получаю данные из моего сервиса JSON, анализирую и динамически внедряю в div. Проблема в; после генерации всех данных прокрутка работает, но не полностью. Представьте, что вы нажимаете и прокручиваете просмотр списка вверх, если вы убираете часовой палец с экрана, позиция просмотра списка автоматически поворачивает назад свою начальную позицию. Я попробовал свой мобильный телефон iScroll и jQuery с жестко закодированным кодом <ul><li>, после чего он работает.

Вот код ниже:

     <script>
     var myScroll2;

     function loaded() {
myScroll2 = new iScroll('wrapper2');

    }

     document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
     document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded,   200); }, false);
      </script>

..

    <div id="wrapper2"> 
    <div data-role="content">   
    <div id="panoListDetay"></div>
    </div>
    </div>

--- и ниже код должен был генерировать данные для просмотра списка.

    /*automatically upldated script*/
    /*called every 5 second*/
    <script>
    $(function update_twit(){
    $.ajax({
    url: "http://myweepage.org/service.json?q=getlast10data",
    dataType: 'jsonp',
    success: function(json_results){
        $("#notice_div").html(''); 
        $("#panoListDetay").html('');
        $('#panoListDetay').append('<ul id="tweetul" data-role="listview" data-theme="c"></ul>');
        listItems = $('#panoListDetay').find('ul');
        $.each(json_results.results, function(key) {
            html = '<h3>'+json_results.results[key].screen_name+'</h3><div class="ui-li-desc">'+json_results.results[key].text+'</div>';
            html += '<p class="ui-li-aside"><img WIDTH=12 HEIGHT=12 src="images/11-clock.png"/><strong> '+json_results.results[key].tarih.substring(11,16)+'</strong></p>';
            html +='<p class="ui-li"><img WIDTH=8 HEIGHT=13 src="images/07-map-marker.png"/> '+json_results.results[key].adres_data+'</p>';
            listItems.append('<li>'+html+'</li>');
        });
        $('#panoListDetay ul').listview();
        window.setTimeout(update_twit, 5000);
    },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
        window.setTimeout(update_twit, 20000);
    }
    });
    })
    </script>

Ответы [ 2 ]

0 голосов
/ 23 марта 2012
// Append the HTML to your element inside your myScroll
setTimeout(function () {
       myScroll.refresh();
   }, 100);

Нет проблем с использованием data-role = "content"

Вы должны обновить свой iscroll после добавления данных

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

Привет всем, я исправил эту проблему. Проблема связана со стилем содержимого = div.

 <div id="wrapper2"> 
<!--<div data-role="content">-->  
<div id="panoListDetay"></div>
<!--</div>-->
</div>
...