2013-05-15 11 views
5

ich eine „normale“ Verbindung in meiner JQM Seite wie diese:jQuery Mobile Kraft voll Reload, wenn Link geklickt

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

Und wenn ich es klicken, um es nicht korrekt aktualisiert wird den Attributwert berücksichtigt und Laden Sie alles, was dafür benötigt wird, basierend auf dem Attributwert dynamisch. Ich verstehe, dass dies auf die Tatsache zurückzuführen ist, dass JQM versucht einen Ajax-Aufruf zu tun, wie here erwähnt:

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). 

So fand ich in den docs heraus, dass ich $.mobile.ajaxEnabled=false; oder rel=external auf Links oder target=_blank auf dem Link verwenden sollte .

Seltsame Sache für mich ist aber, dass nur dann, wenn ich die target=_blank Eigenschaft auf meine Links wird dies wirklich passieren. Ich frage mich, ob jemand diese Art von Problem hatte und wie haben Sie es gelöst? Die Sache ist, würde ich mich target=_blank mit Bildung verzichten möchte, da es einen neuen Tab in meinem Browser öffnet (wie erwartet, aber das ist aus Sicht der Anwender POV nicht schön).

JQM Version ich benutze, ist 1.2

+0

Verwendung' $ .mobile.changePage ('url', {true} reloadPage) genommen. ** reloadPage ** Erzwingt das erneute Laden einer Seite, auch wenn sie sich bereits im DOM des Seitencontainers befindet. Wird nur verwendet, wenn das Argument 'to' von changePage() eine URL ist. – Omar

+0

Hallo Omar, danke für deine Antwort obwohl es wirklich nicht für mich funktioniert und auch nicht die Vinay's Antwort unten. – Nikola

Antwort

10

Diese Frage ist nun an der Spitze der Google-Suchergebnisse, so dachte ich antworten würde:

die Daten-Ajax-Attribut verwenden und es auf false gesetzt reload aufzuzwingen einen Link klicken:

data-ajax="false" 

Gebrauch mag es:

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

Und dann wird Ihr Link zwingen, die Seite neu zu laden!

Linking without Ajax

Links, die auf andere Domänen zeigen oder daß rel = "external" Daten ajax = "false" oder Zielattribut nicht mit Ajax geladen werden müssen. Stattdessen verursachen diese Verbindungen eine vollständige Aktualisierung der Seite ohne animierte Übergang. Beiden Attribute (rel = „external“ und Daten-Ajax = „false“) haben die gleiche Wirkung, aber eine andere semantische Bedeutung: rel = „external“ sollte verwendet werden, wenn sie an einem anderen Standort oder eine Domäne verknüpft, während Daten- ajax = "false" ist nützlich, um einfach eine Seite innerhalb Ihrer Domäne über Ajax zu laden. Aufgrund von Sicherheitseinschränkungen, der Rahmen immer entscheidet sich Links zu externen Domänen aus dem Ajax Verhalten. `;:

Teile https://stackoverflow.com/a/22951472

+0

Gibt es eine einfache Möglichkeit, JQM mitzuteilen, dass Sie alle Ihre Links auf diese Weise erhalten möchten? – SpyderScript

-1

Make-Funktion für das Onclick-Ereignis des link.See des folgenden Code example.Hope, das hilft!

<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');"> 
Verwandte Themen