2012-05-13 14 views
1

ヘッダー: Scrollview - ロード後に動的なコンテンツをスクロールすることはできません()

<script src="jquery.mobile/jquery.easing.1.3"></script> 
<script src="jquery.mobile/jquery.mobile.scrollview"></script> 
<script src="jquery.mobile/scrollview"></script> 
....! and the correct css ! 

ボディ:pageshowイベントで

<div data-role="page" data-theme="a" id="mainpage"> 
    <div data-role="content" data-theme="a"> 
     <div id="htmltext" data-scroll="y"></div> 
    </div><!-- /content --> 
</div> 

$("#htmltext").load("content/test.htm", function(response, status, xhr) { 
    if (status == "error") { 
     var msg = "Sorry but there was an error: "; 
     alert(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 

$("#htmltext").scrollview("scrollTo", 0, -600); 

load()の後、動的div #htmltextをスクロールできません。

一方、純粋なコードでロード関数を置き換えると、正しくスクロールされます。

私は何かを見逃しましたか?

答えて

0

おそらく、問題は、Ajaxが非同期で動作することが原因である可能性があります。だから、 Ajaxでロードした後は、そのコールバック関数を使うべきです。スクロール方法をloadハンドラ関数内に移動してみてください。

$("#htmltext").load("content/test.htm", function(response, status, xhr) { 
    if (status == "error") { 
     var msg = "Sorry but there was an error: "; 
     alert(msg + xhr.status + " " + xhr.statusText); 
    } 
    $("#htmltext").scrollview("scrollTo", 0, -600); 
}); 
+0

私はあなたのコードで試してみましたが、動作しません。 #htmltextにイベントをバインドしても機能しません。こうした 'code'transform()、transform3d()など 私が使用されているCSS機能、...しかし、彼らはコンテンツをスクロールしないではない、コンテンツをトリミング。 – TonyWu

+0

@ TonyWuコードは実行可能です。 'scrollview'関数を確認してください。それは存在しますか?私は '.scrollTop()'メソッドを知っていて、これについて何も言えません。 – VisioN

+0

それは理論的にはうまく見えますが、実際にはうまくいきません。 ロード後にイベントが発生することはありません。 'Link //ストーリーの内容を読み込みます。 $( '#1のhtmlText')負荷( "のTest.htm"、機能(応答、状態、XHR){ 場合(状態== "エラー"){ VaRのMSG = "申し訳ありませんが、エラーがありました:"。 ;console.error(msg + xhr.status + "" + xhr.statusText); } $( '#ctrl')。 $( '#ctrl')$ {'htmltext'} $ scrollscroll( "scrollTo"、0、 -600); }); ' scrollview()jquery.mobile.scrollview.jsに属し – TonyWu