2011-06-23 14 views
11

Chcę coś zrobić za każdym razem, gdy ładuje się strona. To coś, co naprawia sposób, w jaki witryna mobilna wygląda na różnych urządzeniach, więc musi się zdarzyć, gdy ładuje się AJAX.jQuery Mobile - Zrób coś na ładowanie strony

W tej chwili próbowałem tradycyjne podejście $(function(){ /*...*/ });, ale to działa tylko na pierwszym obciążeniu, a nie kolejne obciążenia AJAX.

Szukałem odpowiedniego zdarzenia, ale trudno mi to zrobić.

Odpowiedz

26

można użyć jQuery do wiązania się z każdej "stronie" (div jest ustawiony z atrybutem data-role=page) i użyć zdarzenia pageshow (istnieje kilka innych, a także: pagebeforeshow, pagehide, pagebeforehide).

$(document).delegate('.ui-page', 'pageshow', function() { 
    //Your code for each page load here 
}); 

http://api.jquerymobile.com/pageshow/

Uwaga: Ta odpowiedź została napisana dla jQuery Mobile 1.0.1, patrz link wyżej dokumentacji aby uzyskać więcej informacji.

+0

Dobra próbka dla tej funkcjonalności - http://jsfiddle.net/olli/4rQRb/ – RredCat

+1

aplikacja stronicowana została wycofana w wersji 1.4 i usunięta w wersji 1.5. Uwaga: wyzwalanie tego zdarzenia jest nieaktualne od wersji jQuery Mobile 1.4.0. Nie będzie już uruchamiany w wersji 1.5.0. Zamiennik dla stronicowania jest wydarzeniem typu pagecontainershow widgetu pagecontainer. W jQuery Mobile 1.4.0 te dwa zdarzenia są identyczne, z wyjątkiem ich nazwy i faktu, że wywoływanie stron jest uruchamiane na stronie, podczas gdy na stronie jest wywoływany tryb stronicowania. – John

Powiązane problemy