У плагина jQuery BlockUI есть очень интересная функция, позволяющая присоединяться к каждому вызову AJAX с помощью простого кода. :
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
Могу ли я использовать аналогичный подход для отображения наложения blockUI при каждой навигации, например, при нажатии на любую ссылку и т. д.?
Я думаю, это нужно делать с помощью события unload
, но у меня не получилось.
$(window).on('unload', function()
{
$.blockUI;
});
При навигации оверлей blockUI не появляется (мне не нужно его скрывать, потому что на новой загруженной странице его не будет).
Я даже могу:
$(window).on('unload', function()
{
console.log('$.blockUI;');
$.blockUI;
console.log('Bye!');
});
и я ясно вижу сообщения $.blockUI;
и Bye!
в консоли, но никаких признаков наложения blockUI.
Я читал, что многие браузеры блокируют отображение alert()
в unload
. Он также распространяется на blockUI? Этого не должно быть, поскольку это просто набор div или других элементов DOM плюс некоторые стили?
Протестировано в Chrome 27, Internet Explorer 10 и Firefox 21. Что я упускаю или делаю неправильно?
Два или три года назад, в старом проекте, мне удалось добиться вышеупомянутой функциональности, но там это было сделано исключительно путем привязки отображения блока интерфейса к определенным кнопкам и пунктам меню. Я хотел бы избежать этого, насколько это возможно, и сделать это глобально, как и с вызовами AJAX.