如何禁用像ajaxStart或ajaxStop这样的全局处理程序被catcomplete触发?

时间:2015-02-12 16:48:12

标签: jquery autocomplete jquery-blockui

使用jQuery BlockUI插件加载给定代码的ajax:

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);

显示使用自动完成和catcomplete为每个搜索字符加载Blocki的ajax。在这种情况下,如何防止全局处理程序,以便不显示Blocki的ajax加载。

我的自动填充功能有以下代码:

$("#query").catcomplete({
        minLength: 3,
        source: "/searches/auto_complete",
        appendTo: "#identifier",
        select: function (event, ui) {
            var query_value = $("#query").val(ui.item.label);
            query_value = $.trim(query_value);
            $("#query").val(query_value);
            $("#search_id").val(ui.item.search_id);
            $("#from").val(ui.item.from);
            $(".search-form").submit();
        }

    });

1 个答案:

答案 0 :(得分:0)

@adeneo终于得到了解决方案。我们应该设置global:false。这是完整的解决方案。

$("#query").catcomplete({
        appendTo: "#identifier",
        source: function (request, response)
        {
            $.ajax(
            {
                global: false,
                minLength: 3,
                source: "/searches/auto_complete",
                url: "/searches/auto_complete",
                dataType: "json",
                data:
                {
                    term: request.term
                },
                success: function (data)
                {
                    response(data);
                }
            });
        },
        minLength: 2,
        select: function (event, ui) {
            var query_value = $("#query").val(ui.item.label);
            query_value = $.trim(query_value);
            $("#query").val(query_value);
            $(".search-form").submit();
        }

    });