2013-06-17 11 views
7

Używam jQuery Mobile (1.3.1), aby wyświetlić wyskakujące okno (wyśrodkowane na ekranie). W zależności od działań użytkownika niektóre treści zostają wstawione do wyskakującego okienka za pośrednictwem AJAX. Działa to dobrze, ale jest jeden problem: Po wstrzyknięciu zawartości w okienko popup zmienia się jej rozmiar, ale pozycja nie jest aktualizowana. Gdy tylko rozmiar okna zostanie zmieniony, pozycja podręczna zostanie odświeżona, ale jak dotąd nie znalazłem sposobu na aktywację tej akcji ręcznie.Zmienianie położenia jQuery Mobile popup po zmianie zawartości

Deklaracja popup:

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

Niektóre rzeczy już próbowali przesunąć okienko do środka okna (w tym szybki przegląd do kodu źródłowego widgety popup dla niektórych wewnętrznych, nieudokumentowanych zdarzeń):

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

Nie mam wielu doświadczeń z JavaScript i po prostu nie mam żadnych pomysłów na ten problem;) Czy ktoś mógłby mi pomóc? Dzięki!

Odpowiedz

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

lub

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

w tym przypadku albo zrobi, bo data-position-to="window"

+1

Dziękuję, drugie oświadczenie wykonało zadanie :) – orbitluke

0

Ten częściowo działa na mnie:

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

znalazłem, że gdy wyzwalanie go natychmiast to nie działa dobrze, więc użyłem setTimeout. Nie wygląda jednak pięknie, szukam lepszego rozwiązania.

+0

Dzięki, ale to praca didn 'dla mnie. – orbitluke

Powiązane problemy