2013-06-17 16 views
7

Ich benutze jQuery Mobile (1.3.1), um ein Popup (Bildschirm zentriert) anzuzeigen. Abhängig von den Benutzeraktionen werden einige Inhalte über AJAX in das Popup eingefügt. Das funktioniert gut, aber es gibt ein Problem: Sobald der Inhalt in das Popup eingefügt wird, ändert sich seine Größe, aber die Position wird nicht aktualisiert. Sobald die Größe des Fensters geändert wird, wird die Popup-Position aktualisiert, aber bis jetzt habe ich keine Möglichkeit gefunden, diese Aktion manuell auszulösen.Reposition jQuery Mobile Popup nach Inhaltsänderung

Erklärung des Popup:

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

Einige Dinge, die ich bereits versucht, um das Popup zu der Fenstermitte neu zu positionieren (einschließlich einem schnellen Blick auf das Popup-Widgets Quellcode für einige interne, nicht dokumentierte Ereignisse):

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

Ich habe nicht viele Erfahrungen mit JavaScript und habe einfach keine weiteren Ideen für dieses Problem;) Könnte mir bitte jemand helfen? Vielen Dank!

Antwort

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

oder

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

in diesem Fall entweder tun, weil data-position-to="window"

+1

Danke, die zweite Aussage hat den Job gemacht :) – orbitluke

0

Dies funktioniert zum Teil für mich:

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

ich, dass das finden, wenn es sofort auslösenden es nicht gut funktionierte so ich setTimeout verwendet. Es sieht jedoch nicht sehr hübsch aus, ich suche nach einer besseren Lösung.

+0

Danke, aber die didn 't Arbeit für mich. – orbitluke

Verwandte Themen