0

アプリケーション (HTML5 モバイル アプリ) で jQuery モバイル ページ遷移機能を使用しています。

<a href="test.html" data-transition="slide">abc</a>

次の場合、ページ遷移 (スライド アニメーション) は正常に機能します。

<a onclick="document.location.href = 'test.html';" data-transition="slide">abc</a> 

ページ遷移は機能せず、ナビゲートするだけでスライドしません。

ページ遷移を 2 番目のオプションで機能させたい。
助けてください

4

4 に答える 4

4

その理由は、最初のケースでは JQM がページ変更を行うためです。2 番目のケースでは、場所を変更してページを手動で変更します。ajaxを使ったjqueryで変更されたページはページ遷移を取得します。
トランジションをスライドに変更するには、デフォルト設定を構成できます$.mobile.defaultPageTransition = "slide";。関数を
使用してページを切り替えます。関数がページ遷移を行います。$.mobile.changePage()changePage()

<!-- html -->
<a class="testLink" data-transition="slide">abc</a>

//js

$(document).off('pagechange');
$(document).on('pagechange', function (e, ui) {
    // generally written in pagechange event.
    $('.testLink').off();
    $('.testLink').on('click', function (e) {
        $.mobile.changePage('test.html', {
            changeHash: true,
            dataUrl: "test",    //the url fragment that will be displayed for the test.html page
            transition: "slide"  //if not specified used the default one or the one defined in the default settings
        });
    });
});
于 2012-06-07T16:18:26.650 に答える
0

属性を追加

rel="external"

ドキュメント リンク

これにより、外部ページをロードできます

于 2013-05-21T06:50:05.893 に答える
0

document オブジェクトには location プロパティがありませんが、window オブジェクトにはあります。参照: ドキュメント オブジェクト

于 2012-06-07T15:35:40.803 に答える
0

preventDefault()これは、リンクをたどってページ遷移を有効にするときに、jQuery Mobile がメソッドを使用するためであると考えられます。を使用しているためonclick、これは要素のデフォルト アクションではなく、clickイベントのバインドです。

基本的に、ブラウザは、jQuery がインターセプトしてアニメーション化する前にリダイレクトされます...

ただし、@ Th0mdikeが言ったように、両方のオプションからまったく同じ結果が得られhref、アンカーの属性を動的に変更できることを考えると$('a').attr('href', 'new.html')、後者を実行するメリットはありません....

于 2012-06-07T15:36:51.760 に答える