2013-05-15 5 views
5

ho un link "normale" nella mia pagina jQm in questo modo:jQuery forza mobile completa ricarica quando link cliccato

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

E se lo scatto non sarà correttamente aggiornare tenendo conto del valore di attributo e caricamento di tutto ciò che è necessario per esso in modo dinamico in base al valore dell'attributo. Capisco che questo è dovuto al fatto che jQm cerca di fare una chiamata AJAX come già detto here:

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

Così, ho scoperto nel docs che dovrei usare $.mobile.ajaxEnabled=false; o rel=external su link o target=_blank il link .

La cosa strana però per me è che solo quando imposto la proprietà target=_blank sui miei collegamenti questo accadrà veramente. Quindi, mi chiedo se qualcuno abbia avuto questo tipo di problema e come lo hai risolto? Il fatto è che vorrei trattenermi dalla forma usando target=_blank mentre apre una nuova scheda nel mio browser (come previsto, ma questo non è bello dal POV degli utenti).

versione jQm che uso è 1.2

+0

uso '$ .mobile.changePage ('url', {reloadPage: true});'. ** reloadPage ** Forza il ricaricamento di una pagina, anche se è già presente nel DOM del contenitore della pagina. Utilizzato solo quando l'argomento 'a' di changePage() è un URL. – Omar

+0

Ciao Omar, grazie per la tua risposta anche se in realtà non funziona per me e nemmeno la risposta di Vinay sotto. – Nikola

risposta

10

Questa domanda ora al top dei risultati di ricerca di Google, quindi pensato che avrei risposto:

utilizzare l'attributo data-ajax e impostarlo a false per forza di ricarica su cliccando su un link:

data-ajax="false" 

utilizzarlo come:

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

E poi il tuo link forzerà ricaricare la pagina!

Linking without Ajax

link che puntano ad altri domini o che hanno rel =, data-ajax = "false" o target "esterno" attributi non verranno caricati con l'Ajax. Invece, questi collegamenti causeranno un aggiornamento completo della pagina senza transizione animata . Entrambi gli attributi (rel = "external" e data-ajax = "false") hanno lo stesso effetto, ma un significato semantico diverso: rel = "external" deve essere utilizzato quando si collega a un altro sito o dominio, mentre data- ajax = "false" è utile per semplicemente optare per il caricamento di una pagina all'interno del dominio tramite Ajax. A causa delle restrizioni di sicurezza, il framework sceglie sempre collegamenti a domini esterni al di fuori del comportamento di Ajax .

parti prese da https://stackoverflow.com/a/22951472

+0

C'è un modo semplice per dire a JQM che vuoi tutti i tuoi link in questo modo? – SpyderScript

-1

funzione di fare per l'evento onclick del link.See codice example.Hope di sotto di questo aiuta!

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