我有一个动态更新的列表视图。我从我的JSON服务中获取数据,解析并动态注入div。问题是;生成所有数据后,滚动工作但不完全。想象一下,按下并滚动列表视图,如果从屏幕上移除小时手指,列表视图位置会自动返回其开始位置。我用硬编码的<ul><li>
代码尝试了我的iScroll和jQuery mobile,然后就可以了。
以下是代码:
<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>
---以下代码是listview的基因数据。
/*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>
答案 0 :(得分:0)
大家好我解决了这个问题。问题与div = content的风格有关。
<div id="wrapper2">
<!--<div data-role="content">-->
<div id="panoListDetay"></div>
<!--</div>-->
</div>
答案 1 :(得分:0)
// Append the HTML to your element inside your myScroll
setTimeout(function () {
myScroll.refresh();
}, 100);
使用data-role =“content”
没有问题您应该在附加数据后刷新您的iscroll