2013-05-07 80 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);