【问题标题】:How to set a minimum delay for BlockUI?如何为 BlockUI 设置最小延迟?
【发布时间】:2011-10-02 17:58:56
【问题描述】:

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

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

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

点击提交按钮时,我会在“MyElement”上显示 BlockUI。

 $('.submit').click(function () {
            window.showBlockUI($('#MyElement'));
        });

有什么想法吗?谢谢。

【问题讨论】:

  • Matt Ball - 不确定我是否理解。如果我在提交时执行 e.preventDefault(),blockUI 会永远留在那里,因为我没有从服务器得到响应。

标签: jquery asp.net-mvc json


【解决方案1】:

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

改成这样:

complete: function () {
    setTimeout(function() {$('#MyElement').unblock()}, 5000);
}

或以更简洁的形式,您可以更好地看到它:

complete: function () {
    setTimeout(function() {
        $('#MyElement').unblock()
    }, 5000);
}

【讨论】:

  • 我真的很喜欢 stackoverflow。谢谢。 (此答案将在 9 分钟内被接受)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 2019-07-26
  • 1970-01-01
相关资源
最近更新 更多