2013-06-19 2 views
0

Ive создал функцию, которую я использую для удаления некоторых данных. Обычно это занимает около 5-10 секунд или около того. Я действительно хотел бы добавить функцию загрузки в функцию.jQuery Мобильная загрузка в функции

function RefreshDataSubmit() { 
    $.mobile.showPageLoadingMsg("a", "Loading"); 

//Deletes app data 
    deleteAppData(); 

    $.mobile.hidePageLoadingMsg(); 
} 

Я думал, что вышеуказанное showPageLoadingMsg/hide будет работать, но его никогда не будет отображаться.

Я отправлю решение, если найду его.

Спасибо за помощь!

+0

Ответ * полностью * зависит от характера функции "deleteAppData". – Pointy

+0

Вы пробовали этот путь? функция RefreshDataSubmit() { $ .mobile.showPageLoadingMsg ("a", "Загрузка"); setTimeout (функция() { deleteAppData(); $ .mobile.hidePageLoadingMsg(); }, 0); } –

ответ

1

Позвольте мне угадать, веб-браузерные комплекты не отображаются ajax загрузчик.

Это обычная проблема, когда ajax загрузчик должен динамически отображаться. Он может быть исправлен, если функция setTimeout предназначена для запуска действия show/hide.

Что-то вроде этого:

setTimeout(function(){ 
    $.mobile.loading('show'); 
},1); 

и

setTimeout(function(){ 
    $.mobile.loading('hide'); 
},1); 

Также вы используете устаревшие методы, $.mobile.loading следует использовать вместо этого.

Рабочий пример: http://jsfiddle.net/Gajotres/LW7MU/3/

+0

Я попытался функции RefreshDataSubmit() { \t SetTimeout (функция() { \t $ .mobile.loading ('шоу'); \t}, 1); \t \t deleteAppData(); \t SetTimeout (функция() { \t $ .mobile.loading ('скрыть'); \t}, 1); } И это не сработало, я делаю что-то неправильно? – user1857654

+1

Да, есть проблемы с вашим кодом. \t $ .mobile.loading ('hide'); }, 1); не будет ждать функции deleteAppData(); в конец. Скрыть метод должен быть помещен в конец deleteAppData(); метод. Скажите, вы пытались использовать только setTimeout (function() {$ .mobile.loading ('show');}, 1); просто чтобы увидеть, что работает ajax loader? – Gajotres

0

Вот сценарии, который работает для меня. DEMO http://jsfiddle.net/yeyene/Rdfxs/5/

function RefreshDataSubmit() { 
    $(".ui-loader").show(); 
    setTimeout(deleteAppData, 5000); 

    //call Deletes app data 
    //deleteAppData(); 
} 
function deleteAppData(){ 
    // after your scripts, loading will hide, put behind all of your script 

    // loading will hide after 5 sec in this example 
    $(".ui-loader").hide(); 
} 
Смежные вопросы