/ / jQuery Mobile spúšťač potreby vytvorenia oneskorenia - listview, jQuery, jQuery-mobile

jQuery Mobilný spúšť vytvára potreby oneskorenie - listview, jquery, jquery-mobile

Používam Ajax na načítanie xml a jeho tvarovaniejQuery Mobile listview. Hneď po odoslaní xml volám metódu trigger tak, aby stránka mohla byť znovu inicializovaná a štýly css mohli byť pridané do viewview takto:

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

Keď načítam stránku, na zlomok sekundy vidím štýly v zobrazení zoznamu, ale potom sa zobrazenie zoznamu zobrazí bez štýlov jQuery Mobile. Zdá sa, že to funguje, keď používam oneskorenie, aj keď takto:

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

Všimol som si, ako to vždy vyzeralo, keď ipoužil bod prerušenia. To ma však znepokojuje, pretože keď používam túto metódu, vždy vidím na krátky čas nemotaný zoznam. Tiež som sa pokúsil obnoviť zoznam tesne pred a po vytvorení, ale zdá sa, že žiadny nefungoval. Vie niekto spôsob, ako tento problém vyriešiť?

odpovede:

1 pre odpoveď č. 1

Požiadavky AJAX sú asynchrónne, čo znamená inékód sa spustí, kým sa čaká na odpoveď. Všeobecným postupom pre použitie požiadavky AJAX je vykonávať akúkoľvek prácu s údajmi prijatými vo funkcii spätného volania pre požiadavku. Tu je príklad použitia jQuery AJAX:

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

To predpokladá, že odpoveď servera je platná HTML a že ste chceli nahradiť obsah #page1 s odpoveďou zo servera.