2013-09-26 10 views
0

Je commence vraiment à détester JQuery Mobile, mais je dois le respecter. Toute aide avec ce problème est très appréciée! Ok, j'ai une page de démarrage qui vérifie juste quelques choses et, si tout va bien, il envoie l'utilisateur à une autre page. Je ne veux pas la nouvelle page à charger via AJAX si je fais ceci:Un JQuery Mobile Popup agit bizarrement

window.location.href = "main.html"; 

Sur la page main.html J'ai un Popup sur la première « page » dans le fichier:

<div data-role="page" data-theme="b" id="MenuPage"> 
    <div data-role="content" style="padding: 10px; padding-top:0px;" id="MenuBody"> 
     ...stuff and things... 
    </div> 
    <div data-role="popup" id="TapPanel" data-theme="b" data-add-back-btn="false"> 
     <h3>Navigation</h3> 
     <p>To return to this menu from any other screen, tap the logo shown above.</p> 
    </div> 
</div> 

en Javascript, je mis le menu contextuel apparaître lorsque la page des charges en utilisant:

$(function() { 
    setTimeout($("#TapPanel").popup("open", { x: 10, y: 140 }), 1500); 
}); 

le problème est que lorsque je clique sur/robinet partout hors de ce message pop-up (qui ne montrera la première fois par la suite), il essaie d'aller "en arrière" à la pag e qui a appelé celui-ci, qui rouvre juste celui-ci - réaffichant le popup. En d'autres termes, je ne peux pas me débarrasser de la fenêtre contextuelle une fois qu'elle est affichée. C'est juste pervers! Pire encore, le popup fermé juste bien avant et je n'ai aucune idée de ce qui l'a fait commencer à agir de cette façon.

Comme vous pouvez le voir, j'ai essayé "data-add-back-btn = 'false'" mais cela n'aide pas.

J'utilise aussi jquery-1.10.2 et jquery.mobile-1.3.2. Toute aide serait très appréciée.

+1

Ajouter 'data-history = false' attribut au popup div. aussi, au lieu de '$ (function()' utilise '$ (document) .on ('pageshow', '#pageid', function() {code});'. – Omar

+0

Merci Omar - le "data-history = ' false '"l'a fait Je voudrais que vous ayez posté une réponse pour que je puisse vous donner des points –

+0

Je suis content d'avoir été utile :) J'ai posté une réponse;) – Omar

Répondre

3

Pour éviter que le popup ne modifie l'URL une fois fermé/masqué, ajoutez l'attribut data-history="false" à la div. ou définissez-le par programme $('#popup').popup({ history: false });.

Référence: popup widget API

Questions connexes