6

作成中のページで jquery-ui オートコンプリートを使用しています。同じページで、いくつかの ajax イベントが進行中です。他の ajax イベントでは、ユーザーが Web サイト上のすべてのリンクをクリックできないように、自分のページにオーバーレイを追加しています。オートコンプリート中にそれが発生したくありません。

オートコンプリート:

$(function() {
    $( "#search_input" ).autocomplete({
    source: '/search_autocomplete/',});
});

アヤックス:

$.ajax({
    url: "/ajax_login/",
            login_user: $("#login_user").val(),
            password: $("#login_password").val(),
            });

ajax開始:

$("#loading_gif").ajaxStart(function() {
    $("#overlay").show();
    $(this).show();
});

不要な ajax イベント中に ajaxstart 関数が実行されないようにします。私は追加します

global:false,

対応する ajaxfunctions に。jquery-uiソースを変更せずに、オートコンプリート中に同様のことを行うにはどうすればよいですか?

4

3 に答える 3

1

$.ajax()常に特定の方法で作業したいが、現在は常にその方法で作業したい場合は、おそらくデフォルトの動作を変更するべきではありません。

適切なタイミングでオーバーレイを有効または無効にする関数で ajax リクエストをラップする関数を作成することをお勧めします。$.ajax()オーバーレイを使用する場所でこの関数を呼び出し、オートコンプリートにはプレーンを使用します。

于 2012-04-09T23:10:56.543 に答える