È possibile impostare blockUI a lavorare per tutte le funzioni della pagina aggiungendo a un gestore di eventi jQuery globale. Per assicurarci che non venga chiamato sulle chiamate ajax con completamento automatico, dobbiamo determinare se la chiamata è una chiamata di completamento automatico o meno. Il problema è che queste funzioni globali non hanno così tante informazioni a loro disposizione. Tuttavia ajaxSend ottiene alcune informazioni. Ottiene l'oggetto impostazioni usato per effettuare la chiamata ajax. l'oggetto impostazioni ha la stringa di dati inviata. Quindi cosa si può fare è accoda ad ogni stringa di dati in ogni richiesta Ajax sulla tua pagina qualcosa di simile:
¬autocomplete=notautocomplete
Ad esempio:
$.ajax({data:"bar=1&foo=2¬autocomplete=notautocomplete"})
Poi possiamo inserire questo codice nella tua sezione pronti documento prima qualsiasi altra cosa:
$(document).ajaxSend(
function (event, xhr, ajaxOptions){
if(ajaxOptions.data.indexOf("notautocomplete") !== -1){
$.blockUI;
}
});
$(document).ajaxStop($.unblockUI);
Naturalmente l'altra idea migliore sarebbe quella di cercare qualcosa di unico nelle auto richieste complete, come l'url, ma che dipende da quale plug-in di completamento automatico stai usando e come lo stai usando.
grazie per questo uomo, ti amo – franchez