如何设置BlockUI的最小延迟?

Mik*_*ike 5 asp.net-mvc jquery json

我正在尝试设置 BlockUI 的最小显示,但遇到了麻烦。无论我在 setTimeout 中输入什么值,该元素都会立即解除阻塞。

这里我设置 jQuery ajaxForm 插件的选项:

  var options = {
            type: 'POST',
            contentType: 'application/json; charset-utf-8',
            dataType: 'json',
            complete: function () {
                 setTimeout($('#MyElement').unblock(), 5000);
            }
        };
Run Code Online (Sandbox Code Playgroud)

在这里,当我单击提交按钮时,我在“MyElement”上显示 BlockUI。

 $('.submit').click(function () {
            window.showBlockUI($('#MyElement'));
        });
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢。

jfr*_*d00 2

您正在调用 中的函数setTimeout(),而不是传递对函数的引用,因此它会立即执行并将该函数的返回结果传递给setTimeout()。因此它会立即执行。

改成这样:

complete: function () {
    setTimeout(function() {$('#MyElement').unblock()}, 5000);
}
Run Code Online (Sandbox Code Playgroud)

或者以不太紧凑的形式,您可以更好地看到它:

complete: function () {
    setTimeout(function() {
        $('#MyElement').unblock()
    }, 5000);
}
Run Code Online (Sandbox Code Playgroud)