グローバル jQuery イベント ハンドラーに追加することで、blockUI をページ上のすべての関数で機能するように設定できます。オートコンプリート ajax 呼び出しで呼び出されないようにするには、呼び出しがオートコンプリート コールかどうかを判断する必要があります。問題は、これらのグローバル関数が利用できる情報がそれほど多くないことです。ただし、ajaxSend はいくつかの情報を取得します。ajax 呼び出しを行うために使用される設定オブジェクトを取得します。設定オブジェクトには、送信されるデータ文字列があります。したがって、できることは、ページ上のすべての ajax リクエストのすべてのデータ文字列に次のように追加することです。
¬autocomplete=notautocomplete
例えば:
$.ajax({data:"bar=1&foo=2¬autocomplete=notautocomplete"})
次に、このコードをドキュメント準備セクションに何よりも先に配置できます。
$(document).ajaxSend(
function (event, xhr, ajaxOptions){
if(ajaxOptions.data.indexOf("notautocomplete") !== -1){
$.blockUI;
}
});
$(document).ajaxStop($.unblockUI);
もちろん、他のより良いアイデアは、URL などのオートコンプリート リクエストで一意のものを探すことですが、それは使用しているオートコンプリート プラグインとその使用方法によって異なります。