2013-06-17 5 views
7

J'utilise jQuery Mobile (1.3.1) pour afficher un popup (centré sur l'écran). En fonction des actions de l'utilisateur, du contenu est inséré dans la popup via AJAX. Cela fonctionne bien, mais il y a un problème: Une fois que le contenu est injecté dans le popup sa taille change, mais la position n'est pas mise à jour. Dès que la fenêtre est redimensionnée, la position de la popup est actualisée, mais jusqu'à présent, je n'ai pas trouvé le moyen de déclencher cette action manuellement.Repositionner le popup jQuery Mobile après le changement de contenu

Déclaration de la fenêtre contextuelle:

<div id="MoveFolderPopup" data-role="popup" data-position-to="window" style="min-width: 20em"> 

Certaines choses je l'ai déjà essayé de repositionner la fenêtre au centre de la fenêtre (y compris une vue rapide au code source widgets pop-up pour certains événements internes, sans-papiers):

$('#MoveFolderPopup').trigger("reposition"); 
$('#MoveFolderPopup').trigger("_reposition"); 
$('#MoveFolderPopup').trigger("_handleWindowResize"); 
$('#MoveFolderPopup').trigger('refresh') 
$(window).trigger('resize'); 
$('#MoveFolderPopup').popup('open'); 
$('#MoveFolderPopup').trigger('updatelayout'); 

Je n'ai pas beaucoup d'expériences avec JavaScript et je n'ai plus d'idées pour ce problème;) Quelqu'un pourrait m'aider s'il vous plaît? Merci!

Répondre

18
$("#MoveFolderPopup").popup("reposition", {positionTo: 'origin'}); 

ou

$("#MoveFolderPopup").popup("reposition", {positionTo: 'window'}); 

soit fera, parce que data-position-to="window"

+1

Merci, la deuxième déclaration a fait le travail :) – orbitluke

0

Cela fonctionne en partie pour moi:

$('#MoveFolderPopup').resize(); 

Je ne trouve que lors du déclenchement immédiatement, il ne fonctionnait pas bien si je setTimeout. Cela ne me semble pas très joli, je cherche une meilleure solution.

dans ce cas
+0

Merci, mais que le travail N'a pas pour moi. – orbitluke

Questions connexes