2013-05-07 83 views
-1

我有一个iscroll的小问题。我使用phonegap和jquery mobile为iPhone构建了一个小应用程序,从json获取外部数据,使用iscroll和data-iscroll =“”,当我加载列表视图的内容时,iscroll工作得很好,但如果我去在另一篇文章中出现并返回,iscroll记住这个位置,并且我希望我可以从页面的顶部进行操作。jquery mobile和iscroll refresh

氏是我的榜样http://www.viaggiosullaluna.it/es.zip

泰的帮助。

回答

3

iScroll4有.refresh()方法。

考虑你使用这样的事情来创建iscroll实例:

var myScroll = new iScroll('idOfElement', {/*options*/}); 

添加以下处调用新的文章(和每从而改变滚动内容功能)功能的结尾:

setTimeout(function() { 
    myScroll.refresh(); 
}, 100); 

这样,它将重新计算可滚动区域的高度并重做滚动。 欲了解更多信息,请参阅MASTERING THE REFRESH() METHODhttp://cubiq.org/iscroll-4

更新

卷回至顶部,使用以下命令:

myScroll.scrollTo(0, 0); 

的文档状态scrollTo(x, y, time, relative)time ms(用于滚动的“动画”,可能不需要)和relative意味着基于当前元素进行滚动(您也不需要)。

欲了解更多信息,请参阅JAVASCRIPT SCROLLINGhttp://cubiq.org/iscroll-4

+0

感谢您的答复,但我的问题是不同的,我试着解释我的问题,在里面的网页iscroll工作,但如果我按回,并在返回页面另一个,iscroll被放置在你离开的相同位置,我希望它开始页面的开头 – Bambo 2013-05-07 19:01:29

+0

@Bambo更新了你现在告诉我的代码。 – RaphaelDDL 2013-05-07 20:06:23

0

对不起,我不很了解。不幸的是,js并不幸运。我应该了解如何在我的代码中插入函数myScroll.scrollTo(0,0)。你真的很乐意帮助我。我用这三个功能:

JAVASCRIPT

$("#malattie_page").live("pageinit", function() { 
}); 
$("#malattie_interno_page").live("pageinit", function() { 
}); 

$("#malattie_page").live("pagebeforeshow", function(event,data) { 
$.ajax({ 
    url: "http://www.viaggiosullaluna.it/ipediatria_admin/json/malattie.php",  
    type: 'post', 
    dataType: 'json', 
    crossDomain : true, 
    async:false, 
    success: function(retval, textStatus){    
     var html = "<ul id='lista_malattie' data-role='listview' data-autodividers='true' data-filter='true' data-filter-placeholder='Search...'>"; 
     for (var i=0; i<retval.length; i++) { 
      html += "<li><a href='#malattie_interno_page' data-transition='slide' class='contentLink' data-entryid='"+retval[i]['id']+"' >"+retval[i] ['title']+"</a></li>"; 
     } 
     html += "</ul>"; 
     $("#interno_malattie").html(html); 
     $("#lista_malattie").listview(); 
    } 
}); 
}); 
$("#malattie_interno_page").live("pagebeforeshow", function(event,data) { 
$.ajax({ 
    url: "http://www.viaggiosullaluna.it/ipediatria_admin /json/malattie.php?id="+selectedEntry, 
    type: 'post', 
    dataType: 'json', 
    crossDomain : true, 
    async:false, 
    success: function(retval, textStatus){  
     var html ="" 
     for (var i=0; i<retval.length; i++) { 
      if(selectedEntry == retval[i]['id']) { 
       html += "<h3>"+retval[i]['title']+"</h3>"; 
       html += "<div class='interno'>"+retval[i]['content']+" </div>"; 
      } 
     } 
     $("#interno_malattie_page").html(html); 
    } 
    }); 
    }); 

    $("#malattie_page").live("pageshow", function(prepage) { 
}); 
$("#malattie_interno_page").live("pageshow", function(prepage) { 
setTimeout(function(){$('#malattie_interno_page [data- role="content"]').iscrollview('refresh');}, 0); 
}); 

和HTML

<!-- PAGE MALATTIE --> 
    <div data-role="page" class="ui-responsive-panel" id="malattie_page"> 
     <div data-role="header" data-theme="f" data-position="fixed"> 
      <h1>MALATTIE</h1> 
      <a href="#nav-panel" data-icon="bars" data-iconpos="notext">Menu</a></div><!-- /header --> 
     <div data-role="content" data-iscroll=""> 
      <div id="interno_malattie"> 

      </div> 
     </div><!-- /content -->   

     <div data-role="panel" data-position="left" data-position-fixed="false" data-display="reveal" id="nav-panel" data-theme="a"> 
      <ul data-role="listview" data-theme="a" data-divider-theme="a" style="margin-top:-16px;" class="nav-search"> 
       <li data-icon="delete" class="close-button"><a href="#" data-rel="close">MENU INTERNO</a></li> 

       <li><a href="#malattie_page" data-transition="fade">PAGE</a></li> 
      </ul> 
     </div><!-- /panel -->   
    </div><!-- /page --> 


    <!-- PAGE MALATTIE INTERNO PAGINA --> 
    <div data-role="page" class="ui-responsive-panel" id="malattie_interno_page"> 
     <div data-role="header" data-theme="f" data-position="fixed"> 
      <h1>MALATTIE</h1> 
      <a href="#malattie_page" data-rel="back" data-transition="slide" data-direction="reverse">Back</a> 
     </div><!-- /header --> 
     <div data-role="content" data-iscroll=""> 
      <div id="interno_malattie_page"> 


      </div> 
     </div><!-- /content -->   

     <div data-role="panel" data-position="left" data-position-fixed="false" data-display="reveal" id="nav-panel" data-theme="a"> 
      <ul data-role="listview" data-theme="a" data-divider-theme="a" style="margin-top:-16px;" class="nav-search"> 
       <li data-icon="delete" class="close-button"><a href="#" data-rel="close">MENU INTERNO</a></li> 

       <li><a href="#malattie_page" data-transition="fade">PAGE</a></li> 

      </ul> 
     </div><!-- /panel -->   
    </div><!-- /page --> 
0
如果使用iscrollview手段只是试试这个

... 1.refresh

$('#videotagisc').iscrollview("refresh"); 

2.scrollTo

$('#videotagisc').iscrollview('scrollTo', 0,0);