/ / jQuery Tworzenie wyzwalacza mobilnego wymaga opóźnienia - podgląd listy, jquery, jquery-mobile

Eksperyment jQuery Mobile tworzy opóźnienia potrzeb - listview, jquery, jquery-mobile

Korzystam z Ajax, aby załadować xml i nadać mu kształtWidok listy jQuery Mobile. Zaraz po wysłaniu xml wywołuję metodę wyzwalacza, aby strona mogła zostać ponownie zainicjowana, a style css można dodać do widoku listy w następujący sposób:

xmlhttp.send();
$("#page1").trigger( "create" );

Kiedy ładuję stronę, widzę style w widoku listy na ułamek sekundy, ale potem widok listy pojawia się bez stylów jQuery Mobile. Wydaje się, że działa, gdy używam opóźnienia:

setTimeout(function(){
$("#page1").trigger( "create" );
}, 5);

Zauważyłem to, ponieważ zawsze wydawało się, że działaużył punktu przerwania. Niepokoi mnie to, ponieważ kiedy używam tej metody, zawsze wyświetlam listę tematów na krótki czas. Próbowałem także odświeżyć listę tuż przed utworzeniem i po nim, ale żadna z nich nie działała. Czy ktoś zna sposób na rozwiązanie tego problemu?

Odpowiedzi:

1 dla odpowiedzi № 1

Żądania AJAX są asynchroniczne, co oznacza innekod jest uruchamiany podczas oczekiwania na odpowiedź. Ogólny proces korzystania z żądania AJAX polega na wykonaniu dowolnej pracy na danych odebranych w funkcji wywołania zwrotnego dla żądania. Oto przykład użycia jQuery AJAX:

$.ajax({
url     : "my-page.html",
success : function (response) {
$("#page1").html(response).trigger("create");
},
error   : function (jqXHR, textStatus, errorThrown) { /*remember to handle errors*/ }
});

Zakłada się, że odpowiedź serwera jest poprawnym kodem HTML i że chcesz zastąpić treść #page1 z odpowiedzią serwera.