0

我正在开发一个应用程序,其中有内部和外部链接。我注意到点击外部链接时 Jquery mobile 不会加载微调器:

例子

<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,google.com 将无法正常工作,因为它们不允许 iframe 访问。如果您将其更改为另一个站点,例如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() See here for docs加载外部页面。 它有一个showLoadMsg选项“决定在加载外部页面时是否显示加载消息”。

编辑:

这是一个加载外部页面的示例,如我所描述的:

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

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