2013-05-15 7 views
5

mam link „normalny” W mojej stronie jqm takiego:siła jQuery mobile pełne przeładowanie po kliknięciu łącza

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

A jeśli kliknę to nie będzie prawidłowo odświeżyć biorąc pod uwagę wartość atrybutu i ładowanie wszystkiego, co jest potrzebne dla niego dynamicznie w oparciu o wartość atrybutu. Rozumiem, że jest to spowodowane faktem, że jqm próbuje zrobić wywołanie ajax jak wspomniano 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). 

Tak, znalazłem się w docs że powinienem użyć $.mobile.ajaxEnabled=false; lub rel=external na linki lub target=_blank na link .

Dziwne jest dla mnie to, że dopiero wtedy, gdy ustawię właściwość target=_blank na moje linki, stanie się to naprawdę. Zastanawiam się, czy ktoś miał tego rodzaju problem i jak go rozwiązałeś? Chodzi o to, że chciałbym zrezygnować z formularza przy użyciu target=_blank, ponieważ otwiera on nową zakładkę w mojej przeglądarce (zgodnie z oczekiwaniami, ale nie jest to miłe z POV użytkownika).

wersja jqm używam to 1,2

+0

użycia '$ .mobile.changePage ('url', {reloadPage: true});'. ** reloadPage ** Wymusza przeładowanie strony, nawet jeśli jest już w DOM kontenera strony. Używane tylko wtedy, gdy argument "to" parametru ChangePage() jest adresem URL. – Omar

+0

Cześć Omar, dziękuję za odpowiedź, chociaż to naprawdę nie działa dla mnie i nie ma odpowiedzi na Vinaya poniżej. – Nikola

Odpowiedz

10

To pytanie teraz na szczycie wyników wyszukiwania google, więc pomyślałam, że ja odpowiadam:

Użyj danych atrybutu-ajax i ustawić ją na false, aby wymusić reload po kliknięciu na link:

data-ajax="false" 

używać go jak:

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

A potem swój link zmusi odświeżyć stronę!

Linking without Ajax

Linki, które wskazują na innych domen lub mają rel = „zewnętrzny”, danych AJAX = „false” lub ukierunkowanych atrybuty, które nie będą obciążone Ajax. Zamiast tego te linki spowodują pełne odświeżenie strony bez animowanego przejścia . Oba atrybuty (rel = "zewnętrzny" i danych-ajax = "fałsz") mają ten sam efekt, ale inne znaczenie semantyczne: rel = "zewnętrzny" powinien być używany podczas łączenia z inną witryną lub domeną, podczas gdy dane- ajax = "false" przydaje się do tego, że po prostu wybieramy stronę z twojej domeny , która jest ładowana przez Ajax. Ze względów bezpieczeństwa, framework zawsze wybiera linki do zewnętrznych domen poza zachowaniem Ajaxa.

Części pochodzą z https://stackoverflow.com/a/22951472

+0

Czy istnieje łatwy sposób, aby powiedzieć JQM, że chcesz wszystkie swoje linki w ten sposób? – SpyderScript

-1

funkcja Makijaż dla zdarzenia onclick link.See poniższy kod example.Hope to pomaga!

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