5

このページの助けを借りてトランジションを行っています: http://jquerymobile.com/demos/1.2.0/docs/pages/page-transitions.html

リンクをクリックすると遷移します。

<a href="#page1" data-transition="slide" data-role="button" > Submit </a>

それがスライド遷移になります。

data-transition 属性を data-transition="none" に変更すると、遷移が発生しません。

ここで、移行を行う前にいくつかのロジックを実行したいと思います。つまり、javascriptで同じ遷移ができればいいのですが。これは私が今持っているものです:

function GoTopage1()
{
    if(someVar == true)
        window.location = "#page1";
}

私のリンクは次のようになりました:

<a onclick="GoTopage1()" data-transition="slide" data-role="button" > Submit </a>

そのコードは機能しますが、スライドのトランジションが失われました。リンクをクリックすると、フェードイン遷移であるデフォルトの遷移が得られます。コードで移行を行うにはどうすればよいですか?


編集

最後に、私はそれを行う方法を見つけました:

非表示のリンクを配置しました:

<a id="t1" href="#page1"  data-transition="slide" ></a>

次に、私の機能で私は今持っています:

function GoTopage1()
{
    if(someVar == true)
        $("#t1").click(); // simulate link click        
}
4

2 に答える 2

1

アンカー タグ内でバインドしているためonclick、メソッドが最初に実行され、次に jQuery mobile がおそらく「既にそこにいます - 遷移は必要ありません」と言うのではないかと思います。

$.mobile.changePage()window.location を設定する代わりに、jQuery-mobileのメソッドを使用できないでしょうか。これにより、jQuery モバイル コードを介してアクティビティがプッシュされ、移行が機能する可能性があります。

または、jQuery ページ ロジックは hashchange イベントに基づいているため、location の代わりに location.hash を設定する必要があります。ここでドキュメントをチェックアウトできます:

http://jquerymobile.com/demos/1.2.0/docs/pages/page-navmodel.html

編集: jQuery Mobile 1.4 以降、 $.mobile.changePage() は廃止され、代わりに $.mobile.pageContainer.pagecontainer("change") を使用する必要があります。例:

$.mobile.pageContainer.pagecontainer("change", "#page1", {transition: "slide"})
于 2013-01-26T23:27:05.340 に答える
0

以下を使用できます。

  1. $.mobile.navigate("#bar", {transition: "slide", info: "info about the #bar hash"});
  2. $.mobile.pageContainer.pagecontainer("change", "target", {transition: "flow", changeHash: false, reload: true})

$.mobile.changePage()また、現在非推奨であり、使用すべきではないことに も注意してください。http://api.jquerymobile.com/jQuery.mobile.changePage/

他のスレッドから学んだことから、この質問に答えようと思いました。残りのリンクを掲載するほどの評判はありません。Google でコードを検索して、それぞれの StackOverflow スレッドを見つけてください。

于 2014-03-13T04:19:49.600 に答える