单击链接时jQuery mobile force完全重新加载

时间:2013-05-15 07:42:47

标签: jquery-mobile

我的jqm页面中有一个“普通”链接,如下所示:

<a href="http://www.mysite.com/mobile/page.php?attribute=value">

如果我单击它,它将无法正确刷新,同时考虑属性值并根据属性值动态加载所需的所有内容。我理解这是因为jqm试图像提到here那样进行ajax调用:

 When you use pageChange an Ajax request will be made to that url and it will be
 loaded only the content inside the div with data-role="page". So everything you
 have out of this element will be ignored (JS and CSS).

所以,我在docs中发现我应该在链接上使用$.mobile.ajaxEnabled=false;rel=external或在链接上使用target=_blank

对我而言,奇怪的是,只有当我将target=_blank属性设置为我的链接时才真正发生这种情况。所以,我想知道是否有人有这样的问题,你是如何解决的?问题是,我想使用target=_blank来禁止自己形成,因为它在浏览器中打开了一个新选项卡(正如预期的那样,但这对用户的POV来说并不好。)

我使用的jqm版本是1.2

2 个答案:

答案 0 :(得分:14)

此问题现在位于谷歌搜索结果的顶部,所以我想回答:

使用data-ajax属性并将其设置为false以在单击链接时强制重新加载:

data-ajax="false"

使用它像:

<a href="/" data-ajax="false">
    <img id="mainLogo" src="logo.svg" width="215" />
</a>

然后您的链接将强制重新加载页面!

  

Linking without Ajax

     

指向其他域或具有rel =“external”的链接,   data-ajax =“false”或目标属性不会被Ajax加载。   相反,这些链接将导致整页刷新而没有动画   过渡。两个属性(rel =“external”和data-ajax =“false”)   具有相同的效果,但具有不同的语义含义:rel =“external”   应该在链接到另一个站点或域时使用   data-ajax =“false”对于简单地选择你的页面非常有用   通过Ajax加载域。由于安全限制,   框架总是选择从Ajax中链接到外部域   行为。

取自https://stackoverflow.com/a/22951472

的部分

答案 1 :(得分:-1)

为链接的onclick事件创建函数。参见下面的代码示例。希望这有帮助!

<script type="text/javascript">
function loadPage(url){
document.location.href = url;
}
<script/>
<a href="#" onClick="loadPage('http://www.mysite.com/mobile/page.php?attribute=value');">