2013-06-04 2 views
0

Я пытаюсь вызвать событие при выполнении $ (location) .attr(). Я нашел много решений для этого, когда attr() используется для изменения img src, например, но не с $ (location) .attr().

Вы можете спросить, почему я хочу это сделать? В моем приложении у меня есть кнопка для экспорта данных в xml (используя php-код в фоновом режиме). Но это может занять некоторое время (несколько секунд!). Итак, я хотел бы отобразить крошечный «Подождите, пожалуйста, при экспорте», а затем удалите его после создания xlsx и начала загрузки.

Это возможно?

+0

Я полагаю, вы используете ajax. Так почему бы не установить загрузку msg перед запросом и в случае успеха/полного обратного вызова удалить этот msg? –

+0

Если это фактическое 'window.location', которое вы меняете, это приведет к перезагрузке страницы или началу загрузки, если будет настроено содержимое, если это то, что вы пытаетесь сделать, пожалуйста, объясните это лучше. Кроме того, обычно не очень хорошая форма для переноса объекта местоположения в jQuery? – adeneo

+0

$ (location) .attr ('href', "/" + module + "s/export/index? Type =" + params.type + "... другие параметры ..."); а затем в моем php я заканчиваю свой контроллер с помощью $ objWriter-> save ('php: // output'); (objWriter - объект PHPExcel), который заставляет загрузить файл. Местоположение не перезагружает страницу – Olivier

ответ

0
$("#waitMessage").show(); 

$.post("processing.php", yourParameters) 
    .then(function (data) { 
     // handle success 
    }) 
    .fail(function() { 
     // handle server error 
    }) 
    .always(function() { 
     $("#waitMessage").hide(); 
    }) 
Смежные вопросы