对某些 ajax 调用禁用 BlockUI

发布于 2024-10-21 13:42:15 字数 242 浏览 4 评论 0原文

我正在使用出色的 BlockUI,并使用默认设置进行设置,

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

这很棒 - 除非我在页面上添加自动完成元素,然后一旦用户开始输入,blockUI 就会启动。除了显式设置 ajax 调用什么来启动 block UI 之外,任何人都可以想出一种方法来禁用某些 ajax 功能的 blockUI 吗?

I am using the brilliant BlockUI, and have set it up using the default

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

Which is great - except when I add a autocomplete element on the page, and then the blockUI kicks in as soon as the user starts typing. Rather than explicitly set what ajax calls to launch the block UI can anyone think of a way to disable blockUI for certain ajax functions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

救赎№ 2024-10-28 13:42:15

在 jQuery 中,ajax 调用接受不同的设置 一组配置 Ajax 请求的键/值对。所有设置都是可选的。

现在我们有以下内容:

设置名称全局类型布尔值默认: true

描述:
是否为此请求触发全局 Ajax 事件处理程序。默认为 true。设置为 false 以防止触发 ajaxStart 或 ajaxStop 等全局处理程序。这可用于控制各种 Ajax 事件。

示例:

$.ajax({
        global: false,
        type: "POST",
        url: 'ajax/test.html',
        success: function(data) {
          $('.result').html(data);
          alert('Load was performed.');
        }
});

上面的示例将停止执行任何 ajax 启动或 ajax 停止事件,例如 blockUI。

In jQuery an ajax call accepts different settings A set of key/value pairs that configure the Ajax request. All settings are optional.

Now here we have the following:

settings name: global,Type: Boolean, Default: true

Description:
Whether to trigger global Ajax event handlers for this request. The default is true. Set to false to prevent the global handlers like ajaxStart or ajaxStop from being triggered. This can be used to control various Ajax Events.

Example:

$.ajax({
        global: false,
        type: "POST",
        url: 'ajax/test.html',
        success: function(data) {
          $('.result').html(data);
          alert('Load was performed.');
        }
});

Above example will stop execution of any ajax start or ajax stop events like blockUI.

扭转时空 2024-10-28 13:42:15

你可以这样做:

var dontBlock = false;

$(document).ajaxStart(function(){
    if(!dontBlock)
        $.blockUI();
}).ajaxStop($.unblockUI);

// And in the ajax methods (to be excluded), set dontBlock accordingly

$('#autocomplete').keydown(function(){
    dontBlock = true;
    $.ajax({
        // url, data etc.
        success: function(){ dontBlock = false; }
    });
});

You could do something like this:

var dontBlock = false;

$(document).ajaxStart(function(){
    if(!dontBlock)
        $.blockUI();
}).ajaxStop($.unblockUI);

// And in the ajax methods (to be excluded), set dontBlock accordingly

$('#autocomplete').keydown(function(){
    dontBlock = true;
    $.ajax({
        // url, data etc.
        success: function(){ dontBlock = false; }
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文