0

内部リンクと外部リンクがあるアプリケーションを開発しています。外部リンクがクリックされたときにJquerymobileがスピナーをロードしないことに気づきました:

<a href = "/products">Spinner is shown </a>

<a href = "othersite.com" rel = "external">Spinner is NOT shown </a> 

私が試してみました :

$('a[href][rel=external]').click(function(){  //doesnt work
     $.mobile.showPageLoadingMsg();

 }

と:

$('a[href][rel=external]').click(function(){
// shows the spinner but it gets stuck forever
     $.mobile.showPageLoadingMsg();

    $('#loadingDiv').div("refresh");


}

rel =外部リンクがクリックされたときに誰かがスピナーを表示するのを手伝ってもらえますか?

4

2 に答える 2

0

http://jquerymobile.com/test/docs/pages/page-links.html

他のドメインを指すリンク、または rel="external"、data-ajax="false" または target 属性を持つリンクは、Ajax では読み込まれません。代わりに、これらのリンクによってページ全体が更新され、遷移のアニメーションは表示されません。両方の属性 (rel="external" と data-ajax="false") の効果は同じですが、セマンティックな意味が異なります。別のサイトまたはドメインにリンクする場合は rel="external" を使用し、data-ajax=" を使用する必要があります。 false" は、ドメイン内のページが Ajax 経由で読み込まれないように単純に選択する場合に便利です。セキュリティ上の制限により、フレームワークは常に Ajax の動作から外部ドメインへのリンクを選択します。

ページのリダイレクトを行うだけなので、読み込みスピナーは表示されません。また、jsfiddle の場合、iframe アクセスが許可されていないため、google.com は機能しません。http://jsfiddle.netのような別のサイトに変更すると、適切にサイトが切り替わります。

スピナーを表示する必要がある場合は、次のようなことができます

http://jsfiddle.net/RqkYM/10/

$('a[href][rel=external]').click(function(e){
    e.preventDefault();
    e.stopPropagation();
     $.mobile.showPageLoadingMsg();
    window.location = $(this).attr('href');

});​

スピナーを表示してからリダイレクトします

于 2012-11-02T16:58:14.297 に答える
0

必要に応じて、ドキュメントについてはこちらを$.mobile.changePage() 参照して外部ページをロードできます。「外部ページをロードするときにロード中のメッセージを表示するかどうかを決定する」 というオプションがあります。showLoadMsg

編集:

説明したように外部ページをロードする例を次に示します。

http://jsfiddle.net/KYvDv/2/

$.mobile.changePage( "/gQxCN/1/show/", {
    showLoadMsg: true
});
于 2012-11-02T17:16:56.767 に答える